private static ClassOrInterfaceType atomicRefArrayType(ArrayType in) { ClassOrInterfaceType out = new ClassOrInterfaceType(null, "AtomicReferenceArray"); out.setTypeArguments(in.getComponentType()); return out; }
private static boolean isLongArray(Type in) { if (in instanceof ArrayType) { ArrayType aType = (ArrayType) in; return PrimitiveType.longType().equals(aType.getComponentType()); } return false; }
private static ClassOrInterfaceType atomicLongArrayType() { return new ClassOrInterfaceType(null, "AtomicLongArray"); }
private ArgumentType getArgumentType (Parameter parameter) { String[] typeTokens = parameter.getType().toString().split("\\."); String type = typeTokens[typeTokens.length - 1]; int arrayDim = 0; for (int i = 0; i < type.length(); i++) { if (type.charAt(i) == '[') arrayDim++; } type = type.replace("[", "").replace("]", ""); if (arrayDim >= 1) { if (arrayDim > 1) return ArgumentType.ObjectArray; ArgumentType arrayType = arrayTypes.get(type); if (arrayType == null) { return ArgumentType.ObjectArray; } return arrayType; } if (plainOldDataTypes.containsKey(type)) return plainOldDataTypes.get(type); if (bufferTypes.containsKey(type)) return bufferTypes.get(type); if (otherTypes.containsKey(type)) return otherTypes.get(type); return ArgumentType.Object; }
private static void replaceParentClassesForAtomics(NodeList<ClassOrInterfaceType> types) { for (ClassOrInterfaceType parent : types) { if ("BaseLinkedQueue".equals(parent.getNameAsString())) { parent.setName("BaseLinkedAtomicQueue"); } else { // Padded super classes are to be renamed and thus so does the // class we must extend. parent.setName(translateQueueName(parent.getNameAsString())); } } }
private static boolean isRefType(Type in, String className) { // Does not check type parameters if (in instanceof ClassOrInterfaceType) { return (className.equals(((ClassOrInterfaceType) in).getNameAsString())); } return false; }
@Override public void visit(PrimitiveType n, Void arg) { out.println("PrimitiveType: " + (extended ? n : n.getType())); super.visit(n, arg); }
private static boolean isRefArray(Type in, String refClassName) { if (in instanceof ArrayType) { ArrayType aType = (ArrayType) in; return isRefType(aType.getComponentType(), refClassName); } return false; }
private ArgumentType getArgumentType (Parameter parameter) { String[] typeTokens = parameter.getType().toString().split("\\."); String type = typeTokens[typeTokens.length - 1]; int arrayDim = 0; for (int i = 0; i < type.length(); i++) { if (type.charAt(i) == '[') arrayDim++; } type = type.replace("[", "").replace("]", ""); if (arrayDim >= 1) { if (arrayDim > 1) return ArgumentType.ObjectArray; ArgumentType arrayType = arrayTypes.get(type); if (arrayType == null) { return ArgumentType.ObjectArray; } return arrayType; } if (plainOldDataTypes.containsKey(type)) return plainOldDataTypes.get(type); if (bufferTypes.containsKey(type)) return bufferTypes.get(type); if (otherTypes.containsKey(type)) return otherTypes.get(type); return ArgumentType.Object; }
private static ClassOrInterfaceType atomicRefArrayType(ArrayType in) { ClassOrInterfaceType out = new ClassOrInterfaceType(null, "AtomicReferenceArray"); out.setTypeArguments(in.getComponentType()); return out; }
private static ClassOrInterfaceType classType(String className) { return new ClassOrInterfaceType(null, className); }
/** * Searches all extended or implemented super classes or interfaces for * special classes that differ with the atomics version and replaces them * with the appropriate class. * * @param n */ private static void replaceParentClassesForAtomics(ClassOrInterfaceDeclaration n) { for (ClassOrInterfaceType parent : n.getExtendedTypes()) { if ("ConcurrentCircularArrayQueue".equals(parent.getNameAsString())) { parent.setName("AtomicReferenceArrayQueue"); } else if ("ConcurrentSequencedCircularArrayQueue".equals(parent.getNameAsString())) { parent.setName("SequencedAtomicReferenceArrayQueue"); } else { // Padded super classes are to be renamed and thus so does the // class we must extend. parent.setName(translateQueueName(parent.getNameAsString())); } } }
private static boolean isRefType(Type in, String className) { // Does not check type parameters if (in instanceof ClassOrInterfaceType) { return (className.equals(((ClassOrInterfaceType) in).getNameAsString())); } return false; }
private static boolean isRefArray(Type in, String refClassName) { if (in instanceof ArrayType) { ArrayType aType = (ArrayType) in; return isRefType(aType.getComponentType(), refClassName); } return false; }
private JavaMethod createMethod (MethodDeclaration method) { String className = classStack.peek().getName(); String name = method.getName(); boolean isStatic = ModifierSet.hasModifier(method.getModifiers(), ModifierSet.STATIC); String returnType = method.getType().toString(); ArrayList<Argument> arguments = new ArrayList<Argument>(); if (method.getParameters() != null) { for (Parameter parameter : method.getParameters()) { arguments.add(new Argument(getArgumentType(parameter), parameter.getId().getName())); } } return new JavaMethod(className, name, isStatic, returnType, null, arguments, method.getBeginLine(), method.getEndLine()); }
private static ClassOrInterfaceType classType(String className) { return new ClassOrInterfaceType(null, className); }
@Override public void visit(ClassOrInterfaceType n, Void arg) { out.println("ClassOrInterfaceType: " + (extended ? n : n.getNameAsString())); super.visit(n, arg); }
@Override public void visit(ArrayType n, Void arg) { out.println("ArrayType: " + (extended ? n : n.getComponentType())); super.visit(n, arg); }
private static ClassOrInterfaceType simpleParametricType(String className, String... typeArgs) { NodeList<Type> typeArguments = new NodeList<Type>(); for (String typeArg : typeArgs) { typeArguments.add(classType(typeArg)); } return new ClassOrInterfaceType(null, new SimpleName(className), typeArguments); }
private static ClassOrInterfaceType simpleParametricType(String className, String... typeArgs) { NodeList<Type> typeArguments = new NodeList<Type>(); for (String typeArg : typeArgs) { typeArguments.add(classType(typeArg)); } return new ClassOrInterfaceType(null, new SimpleName(className), typeArguments); }