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

org.nakedobjects.remoting.shared.encoding.query.PersistenceQueryFindByPatternEncoder Maven / Gradle / Ivy

package org.nakedobjects.remoting.shared.encoding.query;

import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.spec.NakedObjectSpecification;
import org.nakedobjects.remoting.shared.encoding.object.data.ObjectData;
import org.nakedobjects.remoting.shared.encoding.query.data.PersistenceQueryData;
import org.nakedobjects.remoting.shared.encoding.query.data.PersistenceQueryFindByPatternData;
import org.nakedobjects.runtime.persistence.query.PersistenceQuery;
import org.nakedobjects.runtime.persistence.query.PersistenceQueryFindByPattern;

public class PersistenceQueryFindByPatternEncoder extends PersistenceQueryEncoderAbstract {

    public Class getPersistenceQueryClass() {
        return PersistenceQueryFindByPattern.class;
    }
    
    public PersistenceQueryData encode(
    		final PersistenceQuery persistenceQuery) {
        final PersistenceQueryFindByPattern patternPersistenceQuery = downcast(persistenceQuery);
        final NakedObject pattern = patternPersistenceQuery.getPattern();
        final ObjectData objectData = encodeObject(pattern);
        return new PersistenceQueryFindByPatternData(patternPersistenceQuery.getSpecification(), objectData);
    }

    @Override
    protected PersistenceQuery doDecode(
            final NakedObjectSpecification specification,
            final PersistenceQueryData persistenceQueryData) {
        final ObjectData patternData = downcast(persistenceQueryData).getPatternData();
        final NakedObject patternObject = decodeObject(patternData);
        return new PersistenceQueryFindByPattern(specification, patternObject);
    }

	private PersistenceQueryFindByPattern downcast(
			final PersistenceQuery persistenceQuery) {
		return (PersistenceQueryFindByPattern) persistenceQuery;
	}

	private PersistenceQueryFindByPatternData downcast(
			final PersistenceQueryData persistenceQueryData) {
		return (PersistenceQueryFindByPatternData)persistenceQueryData;
	}


}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy