protected void introDelegatePackages(CodeWriter writer, EntityType model) throws IOException { Set<String> packages = new HashSet<String>(); for (Delegate delegate : model.getDelegates()) { if (!delegate.getDelegateType().getPackageName().equals(model.getPackageName())) { packages.add(delegate.getDelegateType().getPackageName()); } } writer.importPackages(packages.toArray(new String[packages.size()])); }
protected boolean isImportExprPackage(EntityType model) { if (!model.getConstructors().isEmpty() || !model.getDelegates().isEmpty()) { boolean importExprPackage = false; for (Constructor c : model.getConstructors()) { for (Parameter cp : c.getParameters()) { importExprPackage |= cp.getType().getPackageName() .equals(ComparableExpression.class.getPackage().getName()); } } for (Delegate d : model.getDelegates()) { for (Parameter dp : d.getParameters()) { importExprPackage |= dp.getType().getPackageName() .equals(ComparableExpression.class.getPackage().getName()); } } return importExprPackage; } else { return false; } }
public void include(Supertype supertype) { EntityType entityType = supertype.getEntityType(); for (Delegate delegate : entityType.getDelegates()) { addDelegate(delegate); } for (Property property : entityType.getProperties()) { addProperty(property.createCopy(this)); } }
} else if (superAnn && element.getAnnotation(conf.getSuperTypeAnnotation()) != null) { context.supertypes.put(entityType.getFullName(), entityType); } else if (!entityType.getDelegates().isEmpty()) { context.extensionTypes.put(entityType.getFullName(), entityType); } else {
@Override public void serialize(EntityType model, SerializerConfig config, CodeWriter writer) throws IOException { intro(model, config, writer); // properties serializeProperties(model, config, writer); // constructors constructors(model, config, writer); // delegates for (Delegate delegate : model.getDelegates()) { delegate(model, delegate, config, writer); } // property accessors for (Property property : model.getProperties()) { TypeCategory category = property.getType().getCategory(); if (category == TypeCategory.MAP && config.useMapAccessors()) { mapAccessor(model, property, writer); } else if (category == TypeCategory.LIST && config.useListAccessors()) { listAccessor(model, property, writer); } else if (category == TypeCategory.ENTITY && config.useEntityAccessors()) { entityAccessor(model, property, writer); } } outro(model, writer); }