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

org.nakedobjects.plugins.remoting.shared.CriteriaEncoderPattern Maven / Gradle / Ivy

package org.nakedobjects.plugins.remoting.shared;

import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.criteria.InstancesCriteria;
import org.nakedobjects.metamodel.criteria.InstancesCriteriaPattern;
import org.nakedobjects.metamodel.spec.NakedObjectSpecification;
import org.nakedobjects.plugins.remoting.shared.data.CriteriaData;
import org.nakedobjects.plugins.remoting.shared.data.CriteriaDataPattern;
import org.nakedobjects.plugins.remoting.shared.data.KnownObjects;
import org.nakedobjects.plugins.remoting.shared.data.ObjectData;

public class CriteriaEncoderPattern extends CriteriaEncoderAbstract {

    public CriteriaData createData(final InstancesCriteria criteria, final ObjectEncoder encoder) {
        final InstancesCriteriaPattern patternCriteria = (InstancesCriteriaPattern) criteria;
        final NakedObject pattern = patternCriteria.getPattern();
        final ObjectData objectData = (ObjectData) encoder.createParameters(new NakedObjectSpecification[] { pattern
                .getSpecification() }, new NakedObject[] { pattern }, new KnownObjects())[0];
        return new CriteriaDataPattern(patternCriteria, objectData);
    }

    @Override
    protected InstancesCriteria doRestore(
            final NakedObjectSpecification specification,
            final CriteriaData criteriaData,
            final ObjectEncoder encoder) {
        final ObjectData patternData = ((CriteriaDataPattern) criteriaData).getPattern();
        final NakedObject patternObject = encoder.restore(patternData);
        return new InstancesCriteriaPattern(specification, patternObject);
    }

    public Class getCriteriaClass() {
        return InstancesCriteriaPattern.class;
    }
}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy