1 package org.jicengine.element; 2 3 import org.jicengine.expression.Utils; 4 5 14 15 public abstract class Type { 16 17 String name; 18 String [] parameters; 19 String signature; 20 21 protected Type(String name, String [] parameters) 22 { 23 this.name = name; 24 this.parameters = parameters; 25 this.signature = name + "/" + parameters.length; 26 } 27 28 public String getName() 29 { 30 return this.name; 31 } 32 33 public String getSignature() 34 { 35 return this.signature; 36 } 37 38 public String [] getParameters() 39 { 40 return this.parameters; 41 } 42 43 public static Type parse(String typeExpression) 44 { 45 char[] chars = typeExpression.toCharArray(); 46 char character; 47 int paramStart = -1; 48 49 for (int i = 0; i < chars.length; i++) { 51 character = chars[i]; 52 if( character == Utils.METHOD_ARGS_START){ 53 paramStart = i; 54 break; 55 } 56 } 57 58 String typeName; 59 String [] parameters; 60 61 62 if( paramStart < 0 ){ 63 typeName = typeExpression; 64 parameters = new String [0]; 65 } 66 else { 67 typeName = typeExpression.substring(0,paramStart); 68 parameters = Utils.extractArguments(typeExpression,paramStart,typeExpression.length()); 69 } 70 71 return new SimpleType(typeName, parameters); 72 } 73 74 public String toString() 75 { 76 return this.signature; 77 } 78 } 79 | Popular Tags |