All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.cassite.daf4j.ds.ObjectResolver Maven / Gradle / Ivy

The newest version!
package net.cassite.daf4j.ds;

import net.cassite.daf4j.Condition;
import net.cassite.daf4j.IData;
import net.cassite.daf4j.IExpression;
import net.cassite.daf4j.PreResult;

/**
 * 对象Resolver,用于自动调用conditionResolver,expressionResolver,entityDataParser的方法
 *
 * @param       上下文
 * @param  基本元素
 * @see ConditionResolver
 * @see ExpressionResolver
 * @see ParserPacket
 */
public class ObjectResolver {
        private ConditionResolver conditionResolver;
        private ExpressionResolver expressionResolver;
        private EntityDataParser entityDataParser;
        private ParserPacket parserPacket;

        ObjectResolver(ConditionResolver conditionResolver,
                       ExpressionResolver expressionResolver,
                       ParserPacket parserPacket) {
                this.conditionResolver = conditionResolver;
                this.expressionResolver = expressionResolver;
                this.entityDataParser = parserPacket.entityDataParser;
                this.parserPacket = parserPacket;
        }

        public BasicElement resolve(Context context, Object o) throws Exception {
                if (o instanceof Condition) {
                        return conditionResolver.resolve(context, (Condition) o);
                } else if (o instanceof IExpression) {
                        return expressionResolver.resolve(context, (IExpression) o);
                } else if (o instanceof IData) {
                        return entityDataParser.parseData(context, (IData) o);
                } else if (o instanceof PreResult) {
                        return entityDataParser.parseQuery(context, (PreResult) o, parserPacket);
                } else {
                        String s = o.getClass().getName();
                        if (s.startsWith("java.") || s.startsWith("javax.")) {
                                return entityDataParser.parsePlain(context, o);
                        } else {
                                return entityDataParser.parseEntity(context, o);
                        }
                }
        }

        public ConditionResolver getConditionResolver() {
                return conditionResolver;
        }

        public ExpressionResolver getExpressionResolver() {
                return expressionResolver;
        }

        public EntityDataParser getEntityDataParser() {
                return entityDataParser;
        }

        @SuppressWarnings("unchecked")
        public  ParserPacket getParserPacket() {
                return (ParserPacket) parserPacket;
        }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy