
com.draagon.meta.io.util.IOUtil Maven / Gradle / Ivy
package com.draagon.meta.io.util;
import com.draagon.meta.MetaData;
import com.draagon.meta.MetaDataAware;
import com.draagon.meta.loader.MetaDataLoader;
import com.draagon.meta.object.MetaObject;
import com.draagon.meta.object.MetaObjectAware;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class IOUtil {
public static MetaObject getMetaObjectFor(MetaDataLoader loader, Object o) {
if ( o instanceof MetaDataAware ) return (MetaObject) ((MetaDataAware) o).getMetaData();
return loader.getMetaObjectFor( o );
}
public static String toCamelCase( String text, boolean capitalizeFirstChar ) {
if (text == null || text.isEmpty()) {
return text;
}
StringBuilder converted = new StringBuilder();
boolean first = true;
boolean convertNext = false;
for (char ch : text.toCharArray()) {
if (ch == '-') {
convertNext = true;
}
else if (convertNext) {
ch = Character.toTitleCase(ch);
convertNext = false;
converted.append(ch);
}
else if (first && capitalizeFirstChar) {
ch = Character.toTitleCase(ch);
converted.append(ch);
}
else {
converted.append(ch);
}
if ( first ) first = false;
}
return converted.toString();
}
public static List getUniquePackages(Collection extends MetaData> filtered ) throws IOException {
List pkgs = new ArrayList<>();
filtered.forEach( md -> {
if ( md instanceof MetaObject
&& !pkgs.contains( md.getPackage() )) {
pkgs.add( md.getPackage() );
}
});
return pkgs;
}
public static boolean isAbstract( MetaData md ) {
if ( md.hasMetaAttr("_isAbstract")
&& Boolean.TRUE.equals( md.getMetaAttr( "_isAbstract" ).getValue())) {
return true;
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy