public static void addSerializableSupport(JDefinedClass jclass) { jclass._implements(Serializable.class); try { final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); final DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream); processDefinedClassForSerializableSupport(jclass, dataOutputStream); dataOutputStream.flush(); final MessageDigest digest = MessageDigest.getInstance("SHA"); final byte[] digestBytes = digest.digest(byteArrayOutputStream.toByteArray()); long serialVersionUID = 0L; for (int i = Math.min(digestBytes.length, 8) - 1; i >= 0; i--) { serialVersionUID = serialVersionUID << 8 | digestBytes[i] & 0xff; } JFieldVar serialUIDField = jclass.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, long.class, "serialVersionUID"); serialUIDField.init(JExpr.lit(serialVersionUID)); } catch (IOException exception) { throw new GenerationException("IOException while generating serialversionUID field while adding serializable support to class: " + jclass.fullName(), exception); } catch (NoSuchAlgorithmException exception) { throw new GenerationException("SHA algorithm not found when trying to generate serialversionUID field while adding serializable support to class: " + jclass.fullName(), exception); } } }
private static void processDefinedClassForSerializableSupport(JDefinedClass jclass, DataOutputStream dataOutputStream) throws IOException { dataOutputStream.writeUTF(jclass.fullName()); dataOutputStream.writeInt(jclass.mods().getValue()); while (classes.hasNext()) { JDefinedClass nestedClass = classes.next(); sortedClasses.put(nestedClass.fullName(), nestedClass);
/** * Container class name */ public String getClassName() { return candidateClass.fullName(); }
/** * Returns the name of this constant. * * @return never null. */ public String getName() { return this.type.fullName().concat(".").concat(this.name); }
/** * Returns the name of this constant. * * @return never null. */ public String getName() { return this.type.fullName().concat(".").concat(this.name); }
/** * Returns the name of this constant. * * @return never null. */ public String getName() { return this.type.fullName().concat(".").concat(this.name); }
/** * Returns the name of this constant. * * @return never null. */ public String getName() { return this.type.fullName().concat(".").concat(this.name); }
public EBeanHolder create(Element element, Class<? extends Annotation> eBeanAnnotation, JDefinedClass generatedClass) { String qualifiedName = generatedClass.fullName(); originatingElementsByGeneratedClassQualifiedName.put(qualifiedName, element); EBeanHolder activityHolder = new EBeanHolder(this, eBeanAnnotation, generatedClass); eBeanHolders.put(element, activityHolder); return activityHolder; }
@Override public String binaryName() { if (outer instanceof JDefinedClass) return ((JDefinedClass) outer).binaryName() + '$' + name(); else return fullName(); }
@Override public String binaryName() { if (outer instanceof JDefinedClass) return ((JDefinedClass) outer).binaryName() + '$' + name(); else return fullName(); }
public void addDependency(JClass dependency) { if (jaxbObjectClass.fullName().equals(dependency.fullName())) return; if (parent == null) { if (dependencies.add(dependency.fullName())) { superInvocation.arg(dependency.dotclass()); } } else { parent.addDependency(dependency); } }
@Override public JFieldVar apply(ApiResourceMetadata controllerMetadata, JDefinedClass generatableType) { if (!generatableType._implements().hasNext()) { throw new RuleCanNotProcessModelException( "The class " + generatableType.fullName() + " does not implement a super class that can be delegated to."); } JClass controllerInterface = generatableType._implements().next(); JFieldVar field = generatableType.field(JMod.PRIVATE, controllerInterface, delegateFieldName); field.annotate(Autowired.class); return field; } }
public static String getClassName(final JDefinedClass theClass) { return (theClass.outer() == null ? theClass.fullName() : getClassName((JDefinedClass) theClass.outer()) + "$" + theClass.name()); }
private void addRouterMethod(JDefinedClass router, JDefinedClass definedClass) { String className = definedClass.fullName(); JMethod method = router.method(generateMods, definedClass, definedClass.name()); JBlock block = method.body(); block.directStatement("return new " + className + "();"); } }
public static String getPackagedClassName(final JDefinedClass theClass) { return (theClass.outer() == null ? theClass.fullName() : getPackagedClassName((JDefinedClass) theClass.outer()) + "$" + theClass.name()); }
/** * Gets the fully qualified name of this class. */ public String fullName() { if (outer instanceof JDefinedClass) return ((JDefinedClass) outer).fullName() + '.' + name(); JPackage p = _package(); if (p.isUnnamed()) return name(); else return p.name() + '.' + name(); }
/** * Gets the fully qualified name of this class. */ public String fullName() { if (outer instanceof JDefinedClass) return ((JDefinedClass) outer).fullName() + '.' + name(); JPackage p = _package(); if (p.isUnnamed()) return name(); else return p.name() + '.' + name(); }
/** * Gets the fully qualified name of this class. */ public String fullName() { if (outer instanceof JDefinedClass) return ((JDefinedClass) outer).fullName() + '.' + name(); JPackage p = _package(); if (p.isUnnamed()) return name(); else return p.name() + '.' + name(); }
private JInvocation invokeEnumParser(JAXBObjectBuilder caller, JVar callerXsrVar, JAXBEnumBuilder parser, JExpression value) { // Declare dependency from caller to parser caller.addDependency(parser.getJAXBEnumClass()); // Add a static import for the parse method on the existing builder class String methodName = "parse" + parser.getType().getSimpleName(); JStaticImports staticImports = JStaticImports.getStaticImports(caller.getJAXBObjectClass()); staticImports.addStaticImport(parser.getJAXBEnumClass().fullName() + "." + methodName); // Call the static method JInvocation invocation = JExpr.invoke(methodName).arg(callerXsrVar).arg(caller.getReadContextVar()).arg(value); return invocation; }