public void afterUnmarshal()

in src/java/org/apache/fulcrum/intake/model/Group.java [659:698]


    public void afterUnmarshal(Unmarshaller um, Object parent)
    {
        this.parent = (AppData)parent;

        // Build map
        fieldsByName = new HashMap<String, Field<?>>((int) (1.25 * fields.size() + 1));

        for (Field<?> field : fields)
        {
            fieldsByName.put(field.getName(), field);
        }

        Map<String, List<Field<?>>> mapToObjectFieldLists =
                new HashMap<String, List<Field<?>>>((int) (1.25 * fields.size() + 1));

        // Fix fields
        for (Field<?> field : fields)
        {
            if (StringUtils.isNotEmpty(field.mapToObject))
            {
                field.mapToObject = this.parent.getBasePackage() + field.mapToObject;
            }

            // map fields by their mapToObject
            List<Field<?>> tmpFields = mapToObjectFieldLists.computeIfAbsent(
                    field.getMapToObject(),
                    k -> new ArrayList<Field<?>>(fields.size()));

            tmpFields.add(field);
        }

        // Change the mapToObjectFields values to Field[]
        mapToObjectFields = new HashMap<String, Field<?>[]>((int) (1.25 * fields.size() + 1));

        for (Map.Entry<String, List<Field<?>>> entry : mapToObjectFieldLists.entrySet())
        {
            mapToObjectFields.put(entry.getKey(),
                entry.getValue().toArray(new Field[entry.getValue().size()]));
        }
    }