Package org.apache.openjpa.jdbc.meta

Examples of org.apache.openjpa.jdbc.meta.FieldMapping


    }
   
    private boolean startIndex(Attributes attrs)
        throws SAXException {
       
        FieldMapping fm = (FieldMapping) peekElement();
       
        parseIndex(fm.getValueInfo(),
            attrs.getValue("name"),
            Boolean.parseBoolean(attrs.getValue("enabled")),
            Boolean.parseBoolean(attrs.getValue("unique")));
       
        return true;
View Full Code Here


            throw new InternalException();
        }
       
        boolean implicit = Boolean.parseBoolean(_foreignKeyAttributes.getValue("implicit"));
       
        FieldMapping fm = (FieldMapping) peekElement();
        MappingInfo info = fm.getValueInfo();
       
        String name = _foreignKeyAttributes.getValue("name");
        boolean enabled = Boolean.parseBoolean(_foreignKeyAttributes.getValue("enabled"));
        boolean deferred = Boolean.parseBoolean(_foreignKeyAttributes.getValue("deferred"));
        boolean specified = Boolean.parseBoolean(_foreignKeyAttributes.getValue("specified"));
View Full Code Here

    @Override
    protected void parseEagerFetchModeAttr(FieldMetaData fmd, Attributes attrs)
        throws SAXException {
       
        FieldMapping fm = (FieldMapping) fmd;
        String eagerFetchMode = attrs.getValue("eager-fetch-mode");
        if (!StringUtils.isEmpty(eagerFetchMode)) {
            if (eagerFetchMode.equalsIgnoreCase("NONE")) {
                fm.setEagerFetchMode(EagerFetchModes.EAGER_NONE);
            } else if (eagerFetchMode.equalsIgnoreCase("JOIN")) {
                fm.setEagerFetchMode(EagerFetchModes.EAGER_JOIN);
            } else if (eagerFetchMode.equalsIgnoreCase("PARALLEL")) {
                fm.setEagerFetchMode(EagerFetchModes.EAGER_PARALLEL);
            }
        }
    }
View Full Code Here

    protected void parseElementClassCriteriaAttr(FieldMetaData fmd, Attributes attrs)
        throws SAXException {
       
        String elementClassCriteriaString = attrs.getValue("element-class-criteria");
        if (!StringUtils.isEmpty(elementClassCriteriaString)) {
            FieldMapping fm = (FieldMapping) fmd;
            boolean elementClassCriteria = Boolean.parseBoolean(elementClassCriteriaString);
            fm.getElementMapping().getValueInfo().setUseClassCriteria(elementClassCriteria);
        }
    }
View Full Code Here

        ClassMapping owner;
        ClassMapping from, to;
        Action action;
        Variable var;
        Iterator itr = (_actions == null) ? null : _actions.iterator();
        FieldMapping field = null;
        Action prevaction = null;
        boolean isCorrelatedPath = false;
        boolean fromParentRootInSubselect = navigateFromParentRootInSubselect(sel);
               
        while (itr != null && itr.hasNext()) {
            action = (Action) itr.next();

            // treat subqueries like variables for alias generation purposes
            if (action.op == Action.VAR) {
                if (sel.getParent() != null && action.var != null &&
                    prevaction != null && prevaction.data != null &&
                    sel.ctx().getVariable(action.var) == null) {
                    isCorrelatedPath = true;
                    pstate.joins = pstate.joins.setCorrelatedVariable(action.var);
                } else
                    pstate.joins = pstate.joins.setVariable((String) action.data);
            }
            else if (action.op == Action.SUBQUERY) {
                pstate.joins = pstate.joins.setSubselect((String) action.data);
            }
            else if (action.op == Action.UNBOUND_VAR) {
                // unbound vars are cross-joined to the candidate table
                var = (Variable) action.data;
                rel = (ClassMapping) var.getMetaData();
                if (rel == null)
                  throw new IllegalArgumentException(_loc.get(
                      "invalid-unbound-var", var.getName()).toString());
                     
                if (sel.getParent() != null && action.var != null &&
                    sel.ctx().getVariable(action.var) == null) {
                    //System.out.println("Correlated action var="+action.var);
                    isCorrelatedPath = true;
                    pstate.joins = pstate.joins.setCorrelatedVariable(var.getName());
                } else                
                    pstate.joins = pstate.joins.setVariable(var.getName());

                pstate.joins = pstate.joins.crossJoin(_candidate.getTable(),
                    rel.getTable());
                if (!itr.hasNext() && isVariable()) {
                    checkObjectPathInheritanceTypeJoined(pstate);
                }
            } else {
                // move past the previous field, if any
                field = (FieldMapping) ((action.op == Action.GET_XPATH) ?
                    _xmlfield : action.data);

                if (pstate.field != null) {
                    // if this is the second-to-last field and the last is
                    // the related field this field joins to, no need to
                    // traverse: just use this field's fk columns
                    if (!itr.hasNext() && (flags & JOIN_REL) == 0
                        && isJoinedField(pstate.field, key, field)) {
                        pstate.cmpfield = field;
                        break;
                    }
                   
                    if (fromParentRootInSubselect) {
                        isCorrelatedPath = true;
                        pstate.joins = pstate.joins.setCorrelatedVariable(_schemaAlias);
                        pstate.joins.setJoinContext(null);
                    }
                   
                    rel = traverseField(pstate, key, forceOuter ||
                              ctx.store.getDBDictionary().fullResultCollectionInOrderByRelation, false);
                }

                // mark if the next traversal should go through
                // the key rather than value
                key = action.op == Action.GET_KEY;
                forceOuter |= action.op == Action.GET_OUTER;
               
                if (key && itr.hasNext())
                    _keyPath = true;

                // get mapping for the current field
                pstate.field = field;

                owner = pstate.field.getDefiningMapping();
                if (pstate.field.getManagement()
                    != FieldMapping.MANAGE_PERSISTENT)
                    throw new UserException(_loc.get("non-pers-field",
                        pstate.field));

                // find the most-derived type between the declared relation
                // type and the field's owner, and join from that type to
                // the lesser derived type
                if (rel != owner && rel != null) {
                    if (rel.getDescribedType().isAssignableFrom
                        (owner.getDescribedType())) {
                        from = owner;
                        to = rel;
                    } else {
                        from = rel;
                        to = owner;
                    }

                    for (; from != null && from != to;
                        from = from.getJoinablePCSuperclassMapping()) {
                      FieldMapping cast = from.getFieldMapping(pstate.field
                          .getName());
                      if (cast != null)
                        pstate.field = cast;
                        pstate.joins = from.joinSuperclass(pstate.joins, false);
                    }
View Full Code Here

    }

    public Object toDataStoreValue(Select sel, ExpContext ctx, ExpState state,
        Object val) {
        PathExpState pstate = (PathExpState) state;
        FieldMapping field = (pstate.cmpfield != null) ? pstate.cmpfield
            : pstate.field;
        if (isXPath())
            return val;
        if (field != null) {
            if (_key)
                return field.toKeyDataStoreValue(val, ctx.store);
            if (field.getElement().getDeclaredTypeCode() != JavaTypes.OBJECT)
                return field.toDataStoreValue(val, ctx.store);

            val = field.getExternalValue(val, ctx.store.getContext());
            return field.toDataStoreValue(val, ctx.store);
        }
        return _class.toDataStoreValue(val, _class.getPrimaryKeyColumns(),
            ctx.store);
    }
View Full Code Here

        // we eventually call appendIsEmpty or appendIsNull rather than appendTo
    }

    public void verifyIndexedField() {
        Action lastAction = (Action) lastFieldAction();
        FieldMapping fm = (FieldMapping) lastAction.data;
        if (fm.getOrderColumn() == null)
            throw new UserException(_loc.get("no-order-column", fm.getName()));
    }
View Full Code Here

    private void endMapKeyTemporal() {
        String temp = currentText();
        TemporalType _mapKeyTemporal = null;
        if (!StringUtils.isEmpty(temp))
            _mapKeyTemporal = Enum.valueOf(TemporalType.class, temp);
        FieldMapping fm = (FieldMapping) currentElement();
        List<Column> cols = fm.getKeyMapping().getValueInfo().getColumns();
        if (cols.isEmpty()) {
            cols = Arrays.asList(new Column[]{ new Column() });
            fm.getKeyMapping().getValueInfo().setColumns(cols);
        }

        Column col = (Column) cols.get(0);
        switch (_mapKeyTemporal) {
            case DATE:
View Full Code Here

        String text = currentText();
        if (StringUtils.isEmpty(text))
            return;
        EnumType type = Enum.valueOf(EnumType.class, text);

        FieldMapping fm = (FieldMapping) currentElement();
        String strat = EnumValueHandler.class.getName() + "(StoreOrdinal="
            + String.valueOf(type == EnumType.ORDINAL) + ")";
        if (fm.isElementCollection())
            fm.getElementMapping().getValueInfo().setStrategy(strat);
        else
            fm.getValueInfo().setStrategy(strat);
    }
View Full Code Here

        String text = currentText();
        if (StringUtils.isEmpty(text))
            return;
        EnumType type = Enum.valueOf(EnumType.class, text);

        FieldMapping fm = (FieldMapping) currentElement();
        String strat = EnumValueHandler.class.getName() + "(StoreOrdinal="
            + String.valueOf(type == EnumType.ORDINAL) + ")";
        fm.getKeyMapping().getValueInfo().setStrategy(strat);
    }
View Full Code Here

TOP

Related Classes of org.apache.openjpa.jdbc.meta.FieldMapping

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.