Exemplo n.º 1
0
  private UserArrayType decodeUserArrayType(
      org.w3c.dom.Element xmlElement, java.util.Map<Integer, AbstractDeclaration> map) {
    org.w3c.dom.Element xmlLeafType =
        edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(xmlElement, "leafType");
    org.w3c.dom.Element xmlDimensionCount =
        edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(
            xmlElement, "dimensionCount");
    org.w3c.dom.Element xmlLeafTypeNode =
        edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(xmlLeafType, "node");

    org.w3c.dom.Node xmlLeafTypeFirstChild = xmlLeafType.getFirstChild();
    if (xmlLeafTypeFirstChild instanceof org.w3c.dom.Element) {
      org.w3c.dom.Element xmlLeafTypeFirstChildElement =
          (org.w3c.dom.Element) xmlLeafTypeFirstChild;
      if (xmlLeafTypeFirstChildElement.hasAttribute(CodecConstants.UNIQUE_KEY_ATTRIBUTE)) {
        int arrayTypeUniqueKey = getUniqueKey(xmlElement);
        int leafTypeUniqueKey = getUniqueKey(xmlLeafTypeFirstChildElement);
        EPIC_HACK_mapArrayTypeKeyToLeafTypeKey.put(arrayTypeUniqueKey, leafTypeUniqueKey);
      }
    }

    NamedUserType leafType = (NamedUserType) decode(xmlLeafTypeNode, map);
    int dimensionCount = Integer.parseInt(xmlDimensionCount.getTextContent());
    return UserArrayType.getInstance(leafType, dimensionCount);
  }
Exemplo n.º 2
0
 private FieldReflectionProxy decodeField(org.w3c.dom.Element xmlParent, String nodeName) {
   org.w3c.dom.Element xmlField =
       edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(xmlParent, nodeName);
   ClassReflectionProxy declaringCls = decodeDeclaringClass(xmlField);
   String name = xmlField.getAttribute("name");
   return new FieldReflectionProxy(declaringCls, name);
 }
Exemplo n.º 3
0
 private ConstructorReflectionProxy decodeConstructor(
     org.w3c.dom.Element xmlParent, String nodeName) {
   org.w3c.dom.Element xmlConstructor =
       edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(xmlParent, nodeName);
   ClassReflectionProxy declaringCls = decodeDeclaringClass(xmlConstructor);
   ClassReflectionProxy[] parameterClses = decodeParameters(xmlConstructor);
   boolean isVarArgs = Boolean.parseBoolean(xmlConstructor.getAttribute("isVarArgs"));
   return new ConstructorReflectionProxy(declaringCls, parameterClses, isVarArgs);
 }
Exemplo n.º 4
0
 private AnonymousUserConstructor decodeAnonymousConstructor(
     org.w3c.dom.Element xmlElement, java.util.Map<Integer, AbstractDeclaration> map) {
   org.w3c.dom.Element xmlLeafType =
       edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(
           xmlElement, "anonymousType");
   org.w3c.dom.Element xmlLeafTypeNode = (org.w3c.dom.Element) xmlLeafType.getChildNodes().item(0);
   AnonymousUserType anonymousType = (AnonymousUserType) decode(xmlLeafTypeNode, map);
   return AnonymousUserConstructor.get(anonymousType);
 }
Exemplo n.º 5
0
 private ClassReflectionProxy[] decodeParameters(org.w3c.dom.Element xmlElement) {
   org.w3c.dom.Element xmlParameters =
       edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(
           xmlElement, "parameters");
   java.util.List<org.w3c.dom.Element> xmlTypes =
       edu.cmu.cs.dennisc.xml.XMLUtilities.getChildElementsByTagName(xmlParameters, "type");
   ClassReflectionProxy[] rv = new ClassReflectionProxy[xmlTypes.size()];
   for (int i = 0; i < rv.length; i++) {
     rv[i] = createClassReflectionProxy(xmlTypes.get(i).getAttribute("name"));
   }
   return rv;
 }
Exemplo n.º 6
0
  private MethodReflectionProxy decodeMethod(org.w3c.dom.Element xmlParent, String nodeName) {
    org.w3c.dom.Element xmlMethod =
        edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(xmlParent, nodeName);
    ClassReflectionProxy declaringCls = decodeDeclaringClass(xmlMethod);
    String name = xmlMethod.getAttribute("name");

    String potentialReplacement = Decoder.intraClassMethodMap.get(declaringCls, name);
    if (potentialReplacement != null) {
      name = potentialReplacement;
    } else {
      ClassReflectionProxyAndMethodName classReflectionProxyAndMethodName =
          Decoder.betweenClassesMethodMap.get(declaringCls, name);
      if (classReflectionProxyAndMethodName != null) {
        declaringCls = classReflectionProxyAndMethodName.getClassReflectionProxy();
        name = classReflectionProxyAndMethodName.getName();
      }
    }

    //		name = filterMethodNameIfNecessary( declaringCls, name );
    ClassReflectionProxy[] parameterClses = decodeParameters(xmlMethod);
    boolean isVarArgs = Boolean.parseBoolean(xmlMethod.getAttribute("isVarArgs"));
    return new MethodReflectionProxy(declaringCls, name, parameterClses, isVarArgs);
  }
Exemplo n.º 7
0
 private ClassReflectionProxy decodeType(org.w3c.dom.Element xmlElement, String nodeName) {
   org.w3c.dom.Element xmlClass =
       edu.cmu.cs.dennisc.xml.XMLUtilities.getSingleChildElementByTagName(xmlElement, nodeName);
   String clsName = xmlClass.getAttribute("name");
   return createClassReflectionProxy(clsName);
 }