private String createDemarshallerIfNeeded(final MetaClass type) { if (done) { return getVarName(type); } return addArrayMarshaller(type.asBoxed(), target == MarshallerOutputTarget.GWT); }
public static String getVarName(final Class<?> clazz) { return getVarName(MetaClassFactory.get(clazz)); }
private String createDemarshallerIfNeeded(final MetaClass type) { if (done) { return getVarName(type); } return addArrayMarshaller(type.asBoxed(), target == MarshallerOutputTarget.GWT); }
public static String getVarName(final Class<?> clazz) { return getVarName(MetaClassFactory.get(clazz)); }
private static String generateMarshallerImplClassName(final MetaClass type, final boolean gwtTarget) { final String varName = getVarName(type); if (VERY_SHORT_MARSHALLER_NAMES && !gwtTarget) { return VERY_SHORT_MARSHALLER_PREFIX + uniqueGenerator.uniqueName(NameUtil.getShortHashString(varName)); } else if (SHORT_MARSHALLER_NAMES) { return SHORT_MARSHALLER_PREFIX + uniqueGenerator.uniqueName(NameUtil.shortenDerivedIdentifier(varName)) + "_Impl"; } else { return MARSHALLER_NAME_PREFIX + varName + "_Impl"; } }
private static String generateMarshallerImplClassName(final MetaClass type, final boolean gwtTarget) { final String varName = getVarName(type); if (VERY_SHORT_MARSHALLER_NAMES && !gwtTarget) { return VERY_SHORT_MARSHALLER_PREFIX + uniqueGenerator.uniqueName(NameUtil.getShortHashString(varName)); } else if (SHORT_MARSHALLER_NAMES) { return SHORT_MARSHALLER_PREFIX + uniqueGenerator.uniqueName(NameUtil.shortenDerivedIdentifier(varName)) + "_Impl"; } else { return MARSHALLER_NAME_PREFIX + varName + "_Impl"; } }
private String addArrayMarshaller(final MetaClass type, final boolean gwtTarget) { final String varName = getVarName(type); if (!arrayMarshallers.contains(varName)) { final String marshallerClassName = getMarshallerImplClassName(type, gwtTarget); final InnerClass arrayMarshaller = new InnerClass(generateArrayMarshaller(type, marshallerClassName, gwtTarget)); classStructureBuilder.declaresInnerClass(arrayMarshaller); addConditionalAssignment(type, Stmt.newObject(QualifyingMarshallerWrapper.class, Stmt.newObject(arrayMarshaller.getType()), type .asClass())); } arrayMarshallers.add(varName); return varName; }
private String addArrayMarshaller(final MetaClass type, final boolean gwtTarget) { final String varName = getVarName(type); if (!arrayMarshallers.contains(varName)) { final String marshallerClassName = getMarshallerImplClassName(type, gwtTarget); final InnerClass arrayMarshaller = new InnerClass(generateArrayMarshaller(type, marshallerClassName, gwtTarget)); classStructureBuilder.declaresInnerClass(arrayMarshaller); addConditionalAssignment(type, Stmt.newObject(QualifyingMarshallerWrapper.class, Stmt.newObject(arrayMarshaller.getType()), type .asClass())); } arrayMarshallers.add(varName); return varName; }
public static BuildMetaClass createArrayMarshallerClass(final MetaClass type) { final BuildMetaClass arrayMarshaller = ClassBuilder .define(MARSHALLER_NAME_PREFIX + getVarName(type)).packageScope() .abstractClass() .implementsInterface( MetaClassFactory.get(GeneratedMarshaller.class)) .body().getClassDefinition(); return arrayMarshaller; }
public static BuildMetaClass createArrayMarshallerClass(final MetaClass type) { final BuildMetaClass arrayMarshaller = ClassBuilder .define(MARSHALLER_NAME_PREFIX + getVarName(type)).packageScope() .abstractClass() .implementsInterface( MetaClassFactory.get(GeneratedMarshaller.class)) .body().getClassDefinition(); return arrayMarshaller; }
public static String getVarName(final MetaClass clazz) { return clazz.isArray() ? getArrayVarName(clazz.getOuterComponentType().getFullyQualifiedName()) + "_D" + GenUtil.getArrayDimensions(clazz) : getVarName(clazz.asBoxed().getFullyQualifiedName()); }
public static String getVarName(final MetaClass clazz) { return clazz.isArray() ? getArrayVarName(clazz.getOuterComponentType().getFullyQualifiedName()) + "_D" + GenUtil.getArrayDimensions(clazz) : getVarName(clazz.asBoxed().getFullyQualifiedName()); }
public Statement unwrapJSON(final Statement valueStatement, final MetaClass toType, final MetaClass targetType) { if (toType.isEnum()) { return demarshallEnum(Stmt.nestedCall(valueStatement).invoke("isObject"), valueStatement, toType); } else { final String varName = MarshallingGenUtil.getVarName(toType); if (toType.equals(MetaClassFactory.get(Object.class))) { return Stmt.castTo(ObjectMarshaller.class, Stmt.loadVariable(varName)) .invoke("demarshall", targetType.asClass(), valueStatement, loadVariable("a1")); } return Stmt.loadVariable(varName) .invoke("demarshall", valueStatement, loadVariable("a1")); } }
public Statement unwrapJSON(final Statement valueStatement, final MetaClass toType, final MetaClass targetType) { if (toType.isEnum()) { return demarshallEnum(Stmt.nestedCall(valueStatement).invoke("isObject"), valueStatement, toType); } else { final String varName = MarshallingGenUtil.getVarName(toType); if (toType.equals(MetaClassFactory.get(Object.class))) { return Stmt.castTo(ObjectMarshaller.class, Stmt.loadVariable(varName)) .invoke("demarshall", targetType.asClass(), valueStatement, loadVariable("a1")); } return Stmt.loadVariable(varName) .invoke("demarshall", valueStatement, loadVariable("a1")); } }
final String varName = getVarName(clsName);
final String varName = getVarName(clsName);
public void addMarshaller(final MetaClass type) { if (!mappingContext.isRendered(type)) { mappingContext.markRendered(type); BuildMetaClass customMarshaller = null; if (target == MarshallerOutputTarget.GWT) { customMarshaller = ClassBuilder .define(MARSHALLER_NAME_PREFIX + getVarName(type)).packageScope() .abstractClass() .implementsInterface( MetaClassFactory.get(GeneratedMarshaller.class)) .body().getClassDefinition(); } else { final MappingStrategy strategy = MappingStrategyFactory .createStrategy(false, GeneratorMappingContextFactory.getFor(context, target), type); final String marshallerClassName = generateMarshallerImplClassName(type, target == MarshallerOutputTarget.GWT); final ClassStructureBuilder<?> marshaller = strategy.getMapper().getMarshaller(marshallerClassName); customMarshaller = marshaller.getClassDefinition(); } classStructureBuilder.declaresInnerClass(new InnerClass(customMarshaller)); addMarshaller(customMarshaller, type); } }
public void addMarshaller(final MetaClass type) { if (!mappingContext.isRendered(type)) { mappingContext.markRendered(type); BuildMetaClass customMarshaller = null; if (target == MarshallerOutputTarget.GWT) { customMarshaller = ClassBuilder .define(MARSHALLER_NAME_PREFIX + getVarName(type)).packageScope() .abstractClass() .implementsInterface( MetaClassFactory.get(GeneratedMarshaller.class)) .body().getClassDefinition(); } else { final MappingStrategy strategy = MappingStrategyFactory .createStrategy(false, GeneratorMappingContextFactory.getFor(context, target), type); final String marshallerClassName = generateMarshallerImplClassName(type, target == MarshallerOutputTarget.GWT); final ClassStructureBuilder<?> marshaller = strategy.getMapper().getMarshaller(marshallerClassName); customMarshaller = marshaller.getClassDefinition(); } classStructureBuilder.declaresInnerClass(new InnerClass(customMarshaller)); addMarshaller(customMarshaller, type); } }
public static void ensureMarshallerFieldCreated(final ClassStructureBuilder<?> classStructureBuilder, final MetaClass marshallerForType, final MetaClass type, final BlockBuilder<?> initMethod, final Statement marshallerCreationCallback) { final String fieldName = MarshallingGenUtil.getVarName(type); if (classStructureBuilder.getClassDefinition().getField(fieldName) == null) { final Statement marshallerLookup = createMarshallerLookup(marshallerForType, type, marshallerCreationCallback); if (initMethod == null) { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(marshallerLookup).finish(); } else { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(Stmt.load(null)).finish(); initMethod.append( If.isNull(Stmt.loadVariable(fieldName)).append( Stmt.loadVariable(fieldName).assignValue(marshallerLookup)).finish()); } } }
public static void ensureMarshallerFieldCreated(final ClassStructureBuilder<?> classStructureBuilder, final MetaClass marshallerForType, final MetaClass type, final BlockBuilder<?> initMethod, final Statement marshallerCreationCallback) { final String fieldName = MarshallingGenUtil.getVarName(type); if (classStructureBuilder.getClassDefinition().getField(fieldName) == null) { final Statement marshallerLookup = createMarshallerLookup(marshallerForType, type, marshallerCreationCallback); if (initMethod == null) { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(marshallerLookup).finish(); } else { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(Stmt.load(null)).finish(); initMethod.append( If.isNull(Stmt.loadVariable(fieldName)).append( Stmt.loadVariable(fieldName).assignValue(marshallerLookup)).finish()); } } }