public static String stripGenerics(final String type) { final String componentType; final int arrayDimensions; if (isArray(type)) { arrayDimensions = getArrayDimension(type); componentType = stripArray(type); } else { arrayDimensions = 0; componentType = type; } if (isGeneric(componentType)) { final StringBuilder result = new StringBuilder(componentType.replaceFirst("^([^<]*)<.*?>$", "$1")); for (int i = 0; i < arrayDimensions; i++) { result.append("[]"); } return result.toString(); } return type; }
public static boolean isBasicType(String idType) { return isPrimitive(idType) || Arrays.asList("Boolean", "Byte", "Double", "Float", "Integer", "Long", "Short", "String").contains( idType); }
public static boolean areEquivalent(String left, String right) { if ((left == null) && (right == null)) return true; if ((left == null) || (right == null)) return false; if (left.equals(right)) return true; left = stripGenerics(left); right = stripGenerics(right); String l = toSimpleName(left); String r = toSimpleName(right); String lp = getPackage(left); String rp = getPackage(right); if (l.equals(r)) { if (!lp.isEmpty() && !rp.isEmpty()) { return false; } return true; } return false; }
private void addProperty(JPAProperty field, Type<?> dtoFieldType) { String simpleName = dtoFieldType.getName(); String qualifiedName = dtoFieldType.getQualifiedName(); Field<JavaClass> dtoField = dto.addField("private " + simpleName + " " + field.getName() + ";"); if (!(field.isPrimitive() || Types.isJavaLang(qualifiedName) || Types.isArray(qualifiedName))) { dto.addImport(qualifiedName); } if (Types.isArray(qualifiedName)) { String arrayType = field.getType().getQualifiedName(); if (!(Types.isJavaLang(arrayType) || Types.isPrimitive(arrayType))) { dto.addImport(arrayType); } } Refactory.createGetterAndSetter(dto, dtoField); }
public void updateToString(final JavaClass targetEntity) { if (targetEntity.hasMethodSignature("toString")) { targetEntity.removeMethod(targetEntity.getMethod("toString")); } List<Field<JavaClass>> fields = new ArrayList<Field<JavaClass>>(); for (Field<JavaClass> f : targetEntity.getFields()) { if (!"id".equals(f.getName()) && !"version".equals(f.getName()) && (f.getTypeInspector().isPrimitive() || Types.isJavaLang(f.getType()))) { fields.add(f); } } if (!fields.isEmpty()) { Refactory.createToStringFromFields(targetEntity, fields); } }
public static String stripArray(final String type) if (isArray(type))
private Field<JavaClass> addFieldTo(final JavaClass targetEntity, final String fieldType, final String fieldName, final Class<Column> annotation) throws FileNotFoundException { if (targetEntity.hasField(fieldName)) { throw new IllegalStateException("Entity already has a field named [" + fieldName + "]"); } JavaSourceFacet java = project.getFacet(JavaSourceFacet.class); Field<JavaClass> field = targetEntity.addField(); field.setName(fieldName).setPrivate().setType(Types.toSimpleName(fieldType)).addAnnotation(annotation); if (!targetEntity.getCanonicalName().equals(fieldType)) { targetEntity.addImport(fieldType); } Refactory.createGetterAndSetter(targetEntity, field); updateToString(targetEntity); java.saveJavaSource(targetEntity); shell.println("Added field to " + targetEntity.getQualifiedName() + ": " + field); return field; }
public static String getGenerics(final String type) { if (isGeneric(type)) { return type.replaceFirst("^[^<]*(<.*?>)$", "$1"); } return ""; }
public static String getGenericsTypeParameter(final String type) { return getGenerics(type).replaceAll("<", "").replaceAll(">", ""); }
if (!Types.isBasicType(idType))
private void addProperty(JPAProperty property, JavaClass dtoFieldType) { String simpleName = dtoFieldType.getName(); String qualifiedName = dtoFieldType.getQualifiedName(); Field<JavaClass> dtoField = dto.addField("private " + simpleName + " " + property.getName() + ";"); if (!(property.isPrimitive() || Types.isJavaLang(qualifiedName) || Types.isArray(qualifiedName))) { dto.addImport(qualifiedName); } if (Types.isArray(qualifiedName)) { String arrayType = property.getType().getQualifiedName(); if (!(Types.isJavaLang(arrayType) || Types.isPrimitive(arrayType))) { dto.addImport(arrayType); } } Refactory.createGetterAndSetter(dto, dtoField); }
/** * Copied from FieldPlugin */ private static void updateToString(final JavaClass targetEntity) { if (targetEntity.hasMethodSignature("toString")) { targetEntity.removeMethod(targetEntity.getMethod("toString")); } List<Field<JavaClass>> fields = new ArrayList<Field<JavaClass>>(); for (Field<JavaClass> f : targetEntity.getFields()) { if (!"version".equals(f.getName()) && (f.getTypeInspector().isPrimitive() || Types.isJavaLang(f.getType()))) { fields.add(f); } } if (!fields.isEmpty()) { Refactory.createToStringFromFields(targetEntity, fields); } }
dto.addImport(field.getQualifiedType()); dto.addImport(qualifiedConcreteCollectionType); if (!Types.isJavaLang(qualifiedDTOType))