/** * Converts a camel case to underscore and then pluralizes. * * Example: "GrayDuck" is converted to "gray_ducks". * * @param camelCase any CamelCase phrase. * @return pluralized version of underscored CamelCase. */ public static String tableize(String camelCase) { return pluralize(underscore(camelCase)); }
public static String getIdName(String tableName) { return Inflector.singularize(tableName).toLowerCase() + "_id"; }
/** * Generates a camel case version of a phrase from underscore. * * @param underscore underscore version of a word to converted to camel case. * @return camel case version of underscore. */ public static String camelize(String underscore){ return camelize(underscore, true); }
private MetaModel inferTargetMetaModel(String targetTableName){ String targetTable = singularize(targetTableName); MetaModel targetMM = metaModelFor(targetTable); if(targetMM == null){ targetTable = pluralize(targetTableName); targetMM = metaModelFor(targetTable); } return targetMM != null? targetMM: null; }
retVal.put(underscore(parent.getKey().getSimpleName()), parent.getValue().toMap()); childMaps.add(child.toMap()); retVal.put(tableize(cachedChild.getKey().getSimpleName()), childMaps);
@Override public String getQueryParamName(String name) { return Inflector.underscore(name); } }
@Override public String getEntityName(Class<?> entityClass) { return Inflector.camelize(Inflector.underscore(entityClass.getSimpleName()), false); }
private String findTableName(Class<? extends Model> modelClass) { Table tableAnnotation = modelClass.getAnnotation(Table.class); return tableAnnotation == null ? tableize(modelClass.getSimpleName()) : tableAnnotation.value(); }
/** * Generates a camel case version of a phrase from underscore. * * @param underscore underscore version of a word to converted to camel case. * @param capitalizeFirstChar set to true if first character needs to be capitalized, false if not. * @return camel case version of underscore. */ public static String camelize(String underscore, boolean capitalizeFirstChar){ StringBuilder result = new StringBuilder(); StringTokenizer st = new StringTokenizer(underscore, "_"); while (st.hasMoreTokens()) { result.append(capitalize(st.nextToken())); } return capitalizeFirstChar ? result.toString() : result.substring(0, 1).toLowerCase() + result.substring(1); }
if (i > 0) { sb.append(','); } Class parentClass = parentClasses.get(i); String name = pluralize(parentClasses.get(i).getSimpleName()).toLowerCase(); if (pretty) { sb.append("\n ").append(indent); } sb.append('"').append(name).append("\":["); if (i > 0) { sb.append(','); } Class childClass = childClasses.get(i); String name = pluralize(childClass.getSimpleName()).toLowerCase(); if (pretty) { sb.append("\n ").append(indent); } sb.append('"').append(name).append("\":[");
private void discoverMany2ManyAssociationsFor(String source, String dbName) { for (String potentialJoinTable : metaModels.getTableNames(dbName)) { String target = Inflector.getOtherName(source, potentialJoinTable); if (target != null && getMetaModel(target) != null && hasForeignKeys(potentialJoinTable, source, target)) { Class<? extends Model> sourceModelClass = metaModels.getModelClass(source); Class<? extends Model> targetModelClass = metaModels.getModelClass(target); Association associationSource = new Many2ManyAssociation(sourceModelClass, targetModelClass, potentialJoinTable, getMetaModel(source).getFKName(), getMetaModel(target).getFKName()); getMetaModel(source).addAssociation(associationSource); } } }
retVal.put(underscore(parentClass.getSimpleName()), cachedParents.get(parentClass).toMap()); childMaps.add(child.toMap()); retVal.put(tableize(childClass.getSimpleName()), childMaps);
@Override public String getPathSegment(String segment) { return Inflector.underscore(segment); }
private MetaModel inferTargetMetaModel(String targetTableName){ String targetTable = singularize(targetTableName); MetaModel targetMM = metaModelFor(targetTable); if(targetMM == null){ targetTable = pluralize(targetTableName); targetMM = metaModelFor(targetTable); } return targetMM != null? targetMM: null; }
@Override public String getResourceName(String entityName) { return Inflector.tableize(entityName); }
String methodName1 = "is" + capitalize(booleanMethod); String methodName2 = "has" + capitalize(booleanMethod); Method m = booleanMethodNamed(booleanMethod); if (m == null) {
if (i > 0) { sb.append(','); } Class childClass = childClasses.get(i); String name = pluralize(childClass.getSimpleName()).toLowerCase(); if (pretty) { sb.append("\n ").append(indent); } sb.append('"').append(name).append("\":[");
private void discoverMany2ManyAssociationsFor(String source, String dbName) { for (String join : metaModels.getTableNames(dbName)) { String other = Inflector.getOtherName(source, join); if (other == null || getMetaModel(other) == null || !hasForeignKeys(join, source, other)) continue; Association associationSource = new Many2ManyAssociation(source, other, join, getMetaModel(source).getFKName(), getMetaModel(other).getFKName()); getMetaModel(source).addAssociation(associationSource); } }
/** * Generates a XML document from content of this list. * * @param pretty pretty format (human readable), or one line text. * @param declaration true to include XML declaration at the top * @param attrs list of attributes to include. No arguments == include all attributes. * @return generated XML. */ public String toXml(boolean pretty, boolean declaration, String... attrs) { String topNode = Inflector.pluralize(Inflector.underscore(metaModel.getModelClass().getSimpleName())); hydrate(); StringBuilder sb = new StringBuilder(); if(declaration) { sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); if (pretty) sb.append('\n'); } sb.append('<').append(topNode).append('>'); if (pretty) { sb.append('\n'); } for (T t : delegate) { t.toXmlP(sb, pretty, pretty ? " " : "", attrs); } sb.append("</").append(topNode).append('>'); if (pretty) { sb.append('\n'); } return sb.toString(); }
retVal.put(underscore(parent.getKey().getSimpleName()), parent.getValue().toMap()); childMaps.add(child.toMap()); retVal.put(tableize(cachedChild.getKey().getSimpleName()), childMaps);