Search in sources :

Example 1 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class TableAccessor method setupColumns.

private void setupColumns(List<Column> columns, List<Column> pkColumns, PrimaryKey pk) {
    int i = 0;
    for (Column current : columns) {
        boolean inPk = pkColumns.contains(current);
        PropertyAccessor nestedPropertyAccessor;
        if (javaClassAccessor == null) {
            nestedPropertyAccessor = null;
        } else {
            String propertyName = current.getActualPropertyName();
            try {
                nestedPropertyAccessor = javaClassAccessor.getProperty(propertyName);
            } catch (NoSuchFieldException e) {
                nestedPropertyAccessor = null;
                logger.error("Could not access nested property: " + propertyName, e);
            }
        }
        boolean autoGenerated = inPk && (pk.getPrimaryKeyColumns().get(0).getGenerator() != null);
        ColumnAccessor columnAccessor = new ColumnAccessor(current, inPk, autoGenerated, nestedPropertyAccessor);
        columnAccessors[i] = columnAccessor;
        i++;
    }
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) Column(com.manydesigns.portofino.model.database.Column)

Example 2 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class PkHelper method getPrimaryKey.

// **************************************************************************
// Methods
// **************************************************************************
public Serializable getPrimaryKey(String... params) {
    int i = 0;
    Serializable result = (Serializable) classAccessor.newInstance();
    if (params.length != classAccessor.getKeyProperties().length) {
        throw new RuntimeException("Wrong number of parameters for primary key: expected " + classAccessor.getKeyProperties().length + ", got " + params.length);
    }
    for (PropertyAccessor property : classAccessor.getKeyProperties()) {
        String stringValue = params[i];
        Object value = OgnlUtils.convertValue(stringValue, property.getType());
        property.set(result, value);
        i++;
    }
    return result;
}
Also used : Serializable(java.io.Serializable) PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor)

Example 3 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class ShortNameUtils method getName.

public static String getName(ClassAccessor classAccessor, Object object) {
    ShortName annotation = classAccessor.getAnnotation(ShortName.class);
    String formatString;
    if (annotation == null) {
        StringBuilder sb = new StringBuilder();
        boolean first = true;
        // sintetizziamo una stringa a partire dalla chiave primaria
        for (PropertyAccessor propertyAccessor : classAccessor.getKeyProperties()) {
            if (first) {
                first = false;
            } else {
                sb.append(PK_ELEMENT_SEPARATOR);
            }
            sb.append(String.format("%%{%s}", propertyAccessor.getName()));
        }
        formatString = sb.toString();
    } else {
        formatString = annotation.value();
    }
    OgnlTextFormat ognlTextFormat = OgnlTextFormat.create(formatString);
    return ognlTextFormat.format(object);
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) ShortName(com.manydesigns.elements.annotations.ShortName) OgnlTextFormat(com.manydesigns.elements.text.OgnlTextFormat)

Example 4 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class FormBuilder method configFields.

public FormBuilder configFields(String[]... groupedFieldNames) {
    logger.debug("configFields", groupedFieldNames);
    groupedPropertyAccessors = new ArrayList<ArrayList<PropertyAccessor>>();
    for (String[] currentNameGroup : groupedFieldNames) {
        ArrayList<PropertyAccessor> currentPropertyGroup = new ArrayList<PropertyAccessor>();
        groupedPropertyAccessors.add(currentPropertyGroup);
        for (String currentField : currentNameGroup) {
            try {
                PropertyAccessor accessor = classAccessor.getProperty(currentField);
                currentPropertyGroup.add(accessor);
            } catch (NoSuchFieldException e) {
                logger.warn("Field not found: {}" + currentField, e);
            }
        }
    }
    return this;
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor)

Example 5 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class FormBuilder method buildFieldGroup.

protected void buildFieldGroup(Form form, int i, Map<String, Field> fieldMap) {
    ArrayList<PropertyAccessor> group = groupedPropertyAccessors.get(i);
    String fieldSetName;
    if (fieldSetNames == null) {
        fieldSetName = null;
    } else {
        fieldSetName = fieldSetNames.get(i);
    }
    com.manydesigns.elements.forms.FieldSet fieldSet = new com.manydesigns.elements.forms.FieldSet(fieldSetName, nColumns, mode);
    form.add(fieldSet);
    for (PropertyAccessor propertyAccessor : group) {
        buildField(fieldSet, propertyAccessor, fieldMap);
    }
}
Also used : FieldSet(com.manydesigns.elements.annotations.FieldSet) PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor)

Aggregations

PropertyAccessor (com.manydesigns.elements.reflection.PropertyAccessor)46 ClassAccessor (com.manydesigns.elements.reflection.ClassAccessor)13 JavaClassAccessor (com.manydesigns.elements.reflection.JavaClassAccessor)12 JSONObject (org.json.JSONObject)5 SelectionProvider (com.manydesigns.elements.options.SelectionProvider)4 Field (com.manydesigns.elements.fields.Field)3 SelectField (com.manydesigns.elements.fields.SelectField)3 OgnlTextFormat (com.manydesigns.elements.text.OgnlTextFormat)3 TableAccessor (com.manydesigns.portofino.reflection.TableAccessor)3 Session (org.hibernate.Session)3 FieldSet (com.manydesigns.elements.annotations.FieldSet)2 SelectionModel (com.manydesigns.elements.options.SelectionModel)2 QueryStringWithParameters (com.manydesigns.elements.text.QueryStringWithParameters)2 TableCriteria (com.manydesigns.portofino.persistence.TableCriteria)2 SelectionProviderReference (com.manydesigns.portofino.resourceactions.m2m.configuration.SelectionProviderReference)2 Serializable (java.io.Serializable)2 Annotation (java.lang.annotation.Annotation)2 BigDecimal (java.math.BigDecimal)2 URISyntaxException (java.net.URISyntaxException)2 HashMap (java.util.HashMap)2