Package org.jfree.xml.parser

Examples of org.jfree.xml.parser.RootXmlReadHandler


    public Object getObject() throws XmlReaderException {

        if (this.object != null) {
            return this.object;
        }
        final RootXmlReadHandler rootHandler = getRootHandler();
        try {
            for (int i = 0; i < this.objectRefHandlers.size(); i++) {
                final ObjectRefHandler handler = (ObjectRefHandler) this.objectRefHandlers.get(i);
                this.objectFactory.setProperty(handler.getPropertyName(), handler.getObject());
            }

            final ArrayList lookups = new ArrayList();
            final LookupDefinition[] lookupDefs = this.objectFactory.getLookupDefinitions();
            for (int i = 0; i < lookupDefs.length; i++) {
                final LookupDefinition ldef = lookupDefs[i];
                lookups.add(ldef.getPropertyName());
                Log.debug ("lookup object: " + ldef.getPropertyName());

                final Object value = rootHandler.getHelperObject(ldef.getRegistryKey());
                if (value == null) {
                    // todo may or may not be fatal -> define it in the xml?
                    Log.warn ("Failed to lookup object: " + value);
                }
                else {
                    this.objectFactory.setProperty(ldef.getPropertyName(), value);
                }
            }

            final ConstructorDefinition[] conDefs = this.objectFactory.getConstructorDefinitions();
            for (int i = 0; i < conDefs.length; i++) {
                final ConstructorDefinition cDef = conDefs[i];
                // if this is a lookup, then ignore
                if (lookups.contains(cDef.getPropertyName())) {
                    continue;
                }
                if (this.objectFactory.isPropertyDefinition(cDef.getPropertyName())) {
                    final PropertyDefinition pd = this.objectFactory.getPropertyDefinitionByPropertyName(
                        cDef.getPropertyName()
                    );
                    final XmlReadHandler handler = (XmlReadHandler) this.createdHandler.get(
                        pd.getElementName()
                    );
                    if (handler != null) {
                        this.objectFactory.setProperty(pd.getPropertyName(), handler.getObject());
                    }
                }
                // hoping that the attribute is set ..
            }

            this.object = this.objectFactory.createObject();
            Object oldValue = null;
            if (this.objectFactory.getRegisterName() != null) {
                oldValue = rootHandler.getHelperObject(this.objectFactory.getRegisterName());
                rootHandler.setHelperObject(this.objectFactory.getRegisterName(), this.object);
            }

            final PropertyDefinition[] propertyDefs = this.objectFactory.getPropertyDefinitions();
            for (int i = 0; i < propertyDefs.length; i++) {
                final PropertyDefinition pdef = propertyDefs[i];
                final XmlReadHandler handler = (XmlReadHandler) this.createdHandler.get(
                    pdef.getElementName()
                );
                if (handler == null) {
                    continue;
                }
                this.objectFactory.setProperty(pdef.getPropertyName(), handler.getObject());
            }

            this.objectFactory.writeObjectProperties(this.object);

            if (this.objectFactory.getRegisterName() != null) {
                rootHandler.setHelperObject(this.objectFactory.getRegisterName(), oldValue);
            }
        }
        catch (ObjectDescriptionException ode) {
            Log.error ("Unable to create object.", ode);
            throw new XmlReaderException("Unable to create object.", ode);
View Full Code Here


    public Object getObject() throws XmlReaderException {

        if (this.object != null) {
            return this.object;
        }
        final RootXmlReadHandler rootHandler = getRootHandler();
        try {
            for (int i = 0; i < this.objectRefHandlers.size(); i++) {
                final ObjectRefHandler handler = (ObjectRefHandler) this.objectRefHandlers.get(i);
                this.objectFactory.setProperty(handler.getPropertyName(), handler.getObject());
            }

            final ArrayList lookups = new ArrayList();
            final LookupDefinition[] lookupDefs = this.objectFactory.getLookupDefinitions();
            for (int i = 0; i < lookupDefs.length; i++) {
                final LookupDefinition ldef = lookupDefs[i];
                lookups.add(ldef.getPropertyName());
                Log.debug ("lookup object: " + ldef.getPropertyName());

                final Object value = rootHandler.getObject(ldef.getRegistryKey());
                if (value == null) {
                    // todo may or may not be fatal -> define it in the xml?
                    Log.warn ("Failed to lookup object: " + value);
                }
                else {
                    this.objectFactory.setProperty(ldef.getPropertyName(), value);
                }
            }

            final ConstructorDefinition[] conDefs = this.objectFactory.getConstructorDefinitions();
            for (int i = 0; i < conDefs.length; i++) {
                final ConstructorDefinition cDef = conDefs[i];
                // if this is a lookup, then ignore
                if (lookups.contains(cDef.getPropertyName())) {
                    continue;
                }
                if (this.objectFactory.isPropertyDefinition(cDef.getPropertyName())) {
                    final PropertyDefinition pd = this.objectFactory.getPropertyDefinitionByPropertyName(
                        cDef.getPropertyName()
                    );
                    final XmlReadHandler handler = (XmlReadHandler) this.createdHandler.get(
                        pd.getElementName()
                    );
                    if (handler != null) {
                        this.objectFactory.setProperty(pd.getPropertyName(), handler.getObject());
                    }
                }
                // hoping that the attribute is set ..
            }

            this.object = this.objectFactory.createObject();
            Object oldValue = null;
            if (this.objectFactory.getRegisterName() != null) {
                oldValue = rootHandler.getObject(this.objectFactory.getRegisterName());
                rootHandler.putObject(this.objectFactory.getRegisterName(), this.object);
            }

            final PropertyDefinition[] propertyDefs = this.objectFactory.getPropertyDefinitions();
            for (int i = 0; i < propertyDefs.length; i++) {
                final PropertyDefinition pdef = propertyDefs[i];
                final XmlReadHandler handler = (XmlReadHandler) this.createdHandler.get(
                    pdef.getElementName()
                );
                if (handler == null) {
                    continue;
                }
                this.objectFactory.setProperty(pdef.getPropertyName(), handler.getObject());
            }

            this.objectFactory.writeObjectProperties(this.object);

            if (this.objectFactory.getRegisterName() != null) {
                rootHandler.putObject(this.objectFactory.getRegisterName(), oldValue);
            }
        }
        catch (ObjectDescriptionException ode) {
            Log.error ("Unable to create object.", ode);
            throw new XmlReaderException("Unable to create object.", ode);
View Full Code Here

TOP

Related Classes of org.jfree.xml.parser.RootXmlReadHandler

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.