1.1 --- a/javap/src/main/java/org/apidesign/javap/FieldData.java Sun Dec 02 15:05:36 2012 +0100
1.2 +++ b/javap/src/main/java/org/apidesign/javap/FieldData.java Mon Dec 03 21:53:01 2012 +0100
1.3 @@ -130,13 +130,6 @@
1.4 }
1.5
1.6 /**
1.7 - * Returns java type signature of a field.
1.8 - */
1.9 - public String getType(){
1.10 - return new TypeSignature(getInternalSig()).getFieldType();
1.11 - }
1.12 -
1.13 - /**
1.14 * Returns true if field is synthetic.
1.15 */
1.16 public boolean isSynthetic(){
2.1 --- a/javap/src/main/java/org/apidesign/javap/MethodData.java Sun Dec 02 15:05:36 2012 +0100
2.2 +++ b/javap/src/main/java/org/apidesign/javap/MethodData.java Mon Dec 03 21:53:01 2012 +0100
2.3 @@ -268,24 +268,6 @@
2.4 }
2.5
2.6 /**
2.7 - * Return java return type signature of method.
2.8 - */
2.9 - public String getReturnType(){
2.10 -
2.11 - String rttype = (new TypeSignature(getInternalSig())).getReturnType();
2.12 - return rttype;
2.13 - }
2.14 -
2.15 - /**
2.16 - * Return java type parameter signature.
2.17 - */
2.18 - public String getParameters(){
2.19 - String ptype = (new TypeSignature(getInternalSig())).getParameters();
2.20 -
2.21 - return ptype;
2.22 - }
2.23 -
2.24 - /**
2.25 * Return code attribute data of a method.
2.26 */
2.27 public byte[] getCode(){
2.28 @@ -336,13 +318,6 @@
2.29 }
2.30
2.31 /**
2.32 - * Return number of arguments of that method.
2.33 - */
2.34 - public int getArgumentlength(){
2.35 - return new TypeSignature(getInternalSig()).getArgumentlength();
2.36 - }
2.37 -
2.38 - /**
2.39 * Return true if method is static
2.40 */
2.41 public boolean isStatic(){
3.1 --- a/javap/src/main/java/org/apidesign/javap/TypeSignature.java Sun Dec 02 15:05:36 2012 +0100
3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
3.3 @@ -1,295 +0,0 @@
3.4 -/*
3.5 - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
3.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3.7 - *
3.8 - * This code is free software; you can redistribute it and/or modify it
3.9 - * under the terms of the GNU General Public License version 2 only, as
3.10 - * published by the Free Software Foundation. Oracle designates this
3.11 - * particular file as subject to the "Classpath" exception as provided
3.12 - * by Oracle in the LICENSE file that accompanied this code.
3.13 - *
3.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
3.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3.16 - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3.17 - * version 2 for more details (a copy is included in the LICENSE file that
3.18 - * accompanied this code).
3.19 - *
3.20 - * You should have received a copy of the GNU General Public License version
3.21 - * 2 along with this work; if not, write to the Free Software Foundation,
3.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3.23 - *
3.24 - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3.25 - * or visit www.oracle.com if you need additional information or have any
3.26 - * questions.
3.27 - */
3.28 -
3.29 -
3.30 -package org.apidesign.javap;
3.31 -
3.32 -import java.util.*;
3.33 -import java.io.*;
3.34 -
3.35 -/**
3.36 - * Returns java type signature.
3.37 - *
3.38 - * @author Sucheta Dambalkar
3.39 - */
3.40 -public class TypeSignature {
3.41 -
3.42 - String parameters = null;
3.43 - String returntype = null;
3.44 - String fieldtype = null;
3.45 - int argumentlength = 0;
3.46 -
3.47 - public TypeSignature(String JVMSignature){
3.48 -
3.49 - if(JVMSignature != null){
3.50 - if(JVMSignature.indexOf("(") == -1){
3.51 - //This is a field type.
3.52 - this.fieldtype = getFieldTypeSignature(JVMSignature);
3.53 - }else {
3.54 - String parameterdes = null;
3.55 - if((JVMSignature.indexOf(")")-1) > (JVMSignature.indexOf("("))){
3.56 - //Get parameter signature.
3.57 - parameterdes =
3.58 - JVMSignature.substring(JVMSignature.indexOf("(")+1,
3.59 - JVMSignature.indexOf(")"));
3.60 - this.parameters = getParametersHelper(parameterdes);
3.61 - }else this.parameters = "()";
3.62 - //Get return type signature.
3.63 - String returndes = JVMSignature.substring(JVMSignature.lastIndexOf(")")+1);
3.64 - this.returntype = getReturnTypeHelper(returndes);
3.65 - }
3.66 - }
3.67 - }
3.68 -
3.69 - /**
3.70 - * Returns java type signature of a field.
3.71 - */
3.72 - public String getFieldTypeSignature(String fielddes){
3.73 - if(fielddes.startsWith("L")){
3.74 - return(getObjectType(fielddes));
3.75 - }else if(fielddes.startsWith("[")){
3.76 - return(getArrayType(fielddes));
3.77 - }else
3.78 - return(getBaseType(fielddes));
3.79 - }
3.80 -
3.81 - /**
3.82 - * Returns java type signature of a parameter.
3.83 - */
3.84 - public String getParametersHelper(String parameterdes){
3.85 - Vector parameters = new Vector();
3.86 - int startindex = -1;
3.87 - int endindex = -1;
3.88 - String param = "";
3.89 -
3.90 - while(parameterdes != null){
3.91 -
3.92 - if(parameterdes.startsWith("L")){
3.93 - //parameter is a object.
3.94 - startindex = parameterdes.indexOf("L");
3.95 - endindex = parameterdes.indexOf(";");
3.96 - if(startindex < parameterdes.length()) {
3.97 - if(endindex == parameterdes.length()-1) {
3.98 - //last parameter
3.99 - param = parameterdes.substring(startindex);
3.100 - parameterdes = null;
3.101 - }else if(endindex+1 < parameterdes.length()){
3.102 - //rest parameters
3.103 - param = parameterdes.substring(startindex, endindex+1);
3.104 - parameterdes = parameterdes.substring(endindex+1);
3.105 -
3.106 - }
3.107 - parameters.add(getObjectType(param));
3.108 - }
3.109 - }else if(parameterdes.startsWith("[")){
3.110 - //parameter is an array.
3.111 - String componentType = "";
3.112 - int enddim = -1;
3.113 - int st = 0;
3.114 - while(true){
3.115 - if(st < parameterdes.length()){
3.116 - if(parameterdes.charAt(st) == '['){
3.117 -
3.118 - enddim = st;
3.119 - st++;
3.120 - }
3.121 - else break;
3.122 - }
3.123 - else break;
3.124 - }
3.125 -
3.126 - if(enddim+1 < parameterdes.length()){
3.127 - /* Array dimension.*/
3.128 - param = parameterdes.substring(0,enddim+1);
3.129 -
3.130 - }
3.131 -
3.132 - int stotherparam = param.lastIndexOf("[")+1;
3.133 -
3.134 - if(stotherparam < parameterdes.length()){
3.135 - componentType = parameterdes.substring(stotherparam);
3.136 - }
3.137 -
3.138 - if(componentType.startsWith("L")){
3.139 - //parameter is array of objects.
3.140 - startindex = parameterdes.indexOf("L");
3.141 - endindex = parameterdes.indexOf(";");
3.142 -
3.143 - if(endindex == parameterdes.length()-1){
3.144 - //last parameter
3.145 - param += parameterdes.substring(startindex);
3.146 - parameterdes = null;
3.147 - }else if(endindex+1 < parameterdes.length()){
3.148 - //rest parameters
3.149 - param += parameterdes.substring(startindex, endindex+1);
3.150 - parameterdes = parameterdes.substring(endindex+1);
3.151 - }
3.152 - }else{
3.153 - //parameter is array of base type.
3.154 - if(componentType.length() == 1){
3.155 - //last parameter.
3.156 - param += componentType;
3.157 - parameterdes = null;
3.158 - }
3.159 - else if (componentType.length() > 1) {
3.160 - //rest parameters.
3.161 - param += componentType.substring(0,1);
3.162 - parameterdes = componentType.substring(1);
3.163 - }
3.164 - }
3.165 - parameters.add(getArrayType(param));
3.166 -
3.167 -
3.168 - }else {
3.169 -
3.170 - //parameter is of base type.
3.171 - if(parameterdes.length() == 1){
3.172 - //last parameter
3.173 - param = parameterdes;
3.174 - parameterdes = null;
3.175 - }
3.176 - else if (parameterdes.length() > 1) {
3.177 - //rest parameters.
3.178 - param = parameterdes.substring(0,1);
3.179 - parameterdes = parameterdes.substring(1);
3.180 - }
3.181 - parameters.add(getBaseType(param));
3.182 - }
3.183 - }
3.184 -
3.185 - /* number of arguments of a method.*/
3.186 - argumentlength = parameters.size();
3.187 -
3.188 - /* java type signature.*/
3.189 - String parametersignature = "(";
3.190 - int i;
3.191 -
3.192 - for(i = 0; i < parameters.size(); i++){
3.193 - parametersignature += (String)parameters.elementAt(i);
3.194 - if(i != parameters.size()-1){
3.195 - parametersignature += ", ";
3.196 - }
3.197 - }
3.198 - parametersignature += ")";
3.199 - return parametersignature;
3.200 - }
3.201 -
3.202 - /**
3.203 - * Returns java type signature for a return type.
3.204 - */
3.205 - public String getReturnTypeHelper(String returndes){
3.206 - return getFieldTypeSignature(returndes);
3.207 - }
3.208 -
3.209 - /**
3.210 - * Returns java type signature for a base type.
3.211 - */
3.212 - public String getBaseType(String baseType){
3.213 - if(baseType != null){
3.214 - if(baseType.equals("B")) return "byte";
3.215 - else if(baseType.equals("C")) return "char";
3.216 - else if(baseType.equals("D")) return "double";
3.217 - else if(baseType.equals("F")) return "float";
3.218 - else if(baseType.equals("I")) return "int";
3.219 - else if(baseType.equals("J")) return "long";
3.220 - else if(baseType.equals("S")) return "short";
3.221 - else if(baseType.equals("Z")) return "boolean";
3.222 - else if(baseType.equals("V")) return "void";
3.223 - }
3.224 - return null;
3.225 - }
3.226 -
3.227 - /**
3.228 - * Returns java type signature for a object type.
3.229 - */
3.230 - public String getObjectType(String JVMobjectType) {
3.231 - String objectType = "";
3.232 - int startindex = JVMobjectType.indexOf("L")+1;
3.233 - int endindex = JVMobjectType.indexOf(";");
3.234 - if((startindex != -1) && (endindex != -1)){
3.235 - if((startindex < JVMobjectType.length()) && (endindex < JVMobjectType.length())){
3.236 - objectType = JVMobjectType.substring(startindex, endindex);
3.237 - }
3.238 - objectType = objectType.replace('/','.');
3.239 - return objectType;
3.240 - }
3.241 - return null;
3.242 - }
3.243 -
3.244 - /**
3.245 - * Returns java type signature for array type.
3.246 - */
3.247 - public String getArrayType(String arrayType) {
3.248 - if(arrayType != null){
3.249 - String dimention = "";
3.250 -
3.251 - while(arrayType.indexOf("[") != -1){
3.252 - dimention += "[]";
3.253 -
3.254 - int startindex = arrayType.indexOf("[")+1;
3.255 - if(startindex <= arrayType.length()){
3.256 - arrayType = arrayType.substring(startindex);
3.257 - }
3.258 - }
3.259 -
3.260 - String componentType = "";
3.261 - if(arrayType.startsWith("L")){
3.262 - componentType = getObjectType(arrayType);
3.263 - }else {
3.264 - componentType = getBaseType(arrayType);
3.265 - }
3.266 - return componentType+dimention;
3.267 - }
3.268 - return null;
3.269 - }
3.270 -
3.271 - /**
3.272 - * Returns java type signature for parameters.
3.273 - */
3.274 - public String getParameters(){
3.275 - return parameters;
3.276 - }
3.277 -
3.278 - /**
3.279 - * Returns java type signature for return type.
3.280 - */
3.281 - public String getReturnType(){
3.282 - return returntype;
3.283 - }
3.284 -
3.285 - /**
3.286 - * Returns java type signature for field type.
3.287 - */
3.288 - public String getFieldType(){
3.289 - return fieldtype;
3.290 - }
3.291 -
3.292 - /**
3.293 - * Return number of arguments of a method.
3.294 - */
3.295 - public int getArgumentlength(){
3.296 - return argumentlength;
3.297 - }
3.298 -}