Package org.objectweb.jorm.mapper.rdb.metainfo

Examples of org.objectweb.jorm.mapper.rdb.metainfo.RdbClassMapping


            ClassMapping cm,
            NameDef nd,
            SpeedoClass sc,
            MIBuilderHelper mibh) throws PException, SpeedoException {
        Class clazz = (Class) nd.getParent();
        RdbClassMapping rcm = (RdbClassMapping) cm;
        if (nd.isFieldName()) {
            //The identifier of the class is based on a single field
            PrimitiveElement pe = (PrimitiveElement) clazz.getTypedElement(nd
                    .getFieldName());
            if (pe == null) {
                throw new SpeedoException(
                        "impossible to map the fields of the namedef of the metaobject '"
                                + JormPathHelper.getPath(clazz) + "'.");
            }
            SpeedoField sf = sc.getField(pe.getName());
            if (sf == null) {
                // The single field used as identifier is not a visible
                // persistent field
                if (sc.identity.columns != null
                        && sc.identity.columns.length == 1
                        && sc.identity.columns[0] != null
                        && sc.identity.columns[0].column != null
                        && sc.identity.columns[0].column.name != null) {
                    // the column name of the hidden identity field has been
                    // specified
                    createFieldMapping(pe,
                            sc.identity.columns[0].column.name,
                            sc.identity.columns[0].column.sqlType,
                            rcm.getMainRdbTable(),
                            null);
                } else {
                    // No column name specified
                    createFieldMapping(pe, (SpeedoCommonField) null, cm);
                }
            }
        } else {
            // The identifier of the persistent class is based on several
            // persistent field.
            Collection c = nd.getNameRef().getProjection().values();
            int i = 0;
            for (Iterator it = c.iterator(); it.hasNext();) {
                PrimitiveElement pe = (PrimitiveElement) clazz
                        .getTypedElement((String) it.next());
                if (pe == null) {
                    throw new SpeedoException(
                            "impossible to map the fields of the namedef of the metaobject '"
                                    + JormPathHelper.getPath(clazz) + "'.");
                }
                //find the corresponding Speedo meta object.
                SpeedoField sf = sc.getField(pe.getName());
                if (sf == null) {
                    SpeedoNoFieldColumn col = getIdentityColumn(sc.identity, pe
                            .getName());
                    if (col != null) {
                        //column name is specified for the field
                        createFieldMapping(pe, col.column.name,
                                col.column.sqlType, rcm.getMainRdbTable(),
                                null);
                    } else {
                        // no column found
                        createFieldMapping(pe, (SpeedoCommonField) null, cm);
                    }
View Full Code Here

TOP

Related Classes of org.objectweb.jorm.mapper.rdb.metainfo.RdbClassMapping

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.