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

klass.model.meta.domain.ServiceFinder Maven / Gradle / Ivy

The newest version!
package klass.model.meta.domain;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.*;
import java.io.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gs.fw.common.mithra.*;
import com.gs.fw.common.mithra.attribute.*;
import com.gs.fw.common.mithra.util.*;
import com.gs.fw.common.mithra.notification.*;
import com.gs.fw.common.mithra.notification.listener.*;
import com.gs.fw.common.mithra.list.cursor.Cursor;
import com.gs.fw.common.mithra.bulkloader.*;
import com.gs.fw.common.mithra.*;
import com.gs.fw.common.mithra.attribute.*;
import com.gs.fw.common.mithra.attribute.calculator.procedure.ObjectProcedure;
import com.gs.fw.common.mithra.behavior.txparticipation.*;
import com.gs.fw.common.mithra.cache.Cache;
import com.gs.fw.common.mithra.cache.bean.*;
import com.gs.fw.common.mithra.extractor.*;
import com.gs.fw.common.mithra.finder.*;
import com.gs.fw.common.mithra.finder.booleanop.*;
import com.gs.fw.common.mithra.finder.integer.*;
import com.gs.fw.common.mithra.finder.longop.*;
import com.gs.fw.common.mithra.finder.orderby.OrderBy;
import com.gs.fw.common.mithra.finder.string.*;
import com.gs.fw.common.mithra.extractor.NormalAndListValueSelector;
import com.gs.fw.common.mithra.list.NulledRelation;
import com.gs.fw.common.mithra.querycache.CachedQuery;
import com.gs.fw.common.mithra.querycache.QueryCache;
import com.gs.fw.common.mithra.portal.*;
import com.gs.fw.common.mithra.remote.*;
import com.gs.fw.common.mithra.transaction.MithraObjectPersister;
import com.gs.fw.common.mithra.util.TimestampPool;
import org.eclipse.collections.impl.map.mutable.UnifiedMap;
import java.io.Serializable;
/**
* This file was automatically generated using Mithra 18.0.0. Please do not modify it.
* Add custom logic to its subclass instead.
*/
public class ServiceFinder
{
	private static final String IMPL_CLASS_NAME_WITH_SLASHES = "klass/model/meta/domain/Service";
	private static final String BUSINESS_CLASS_NAME_WITH_DOTS = "klass.model.meta.domain.Service";
	private static final FinderMethodMap finderMethodMap;
	private static boolean isFullCache;
	private static boolean isOffHeap;
	private static volatile MithraObjectPortal objectPortal = new UninitializedPortal("klass.model.meta.domain.Service");
	private static final ServiceSingleFinder finder = new ServiceSingleFinder();
	private static ConstantStringSet[] constantStringSets = new ConstantStringSet[0];
	private static ConstantIntSet[] constantIntSets = new ConstantIntSet[0];
	private static ConstantShortSet[] constantShortSets = new ConstantShortSet[0];
	static
	{
		finderMethodMap = new FinderMethodMap(ServiceFinder.ServiceRelatedFinder.class);
		finderMethodMap.addNormalAttributeName("serviceGroupName");
		finderMethodMap.addNormalAttributeName("urlString");
		finderMethodMap.addNormalAttributeName("verb");
		finderMethodMap.addNormalAttributeName("projectionName");
		finderMethodMap.addNormalAttributeName("queryCriteriaId");
		finderMethodMap.addNormalAttributeName("authorizeCriteriaId");
		finderMethodMap.addNormalAttributeName("validateCriteriaId");
		finderMethodMap.addNormalAttributeName("conflictCriteriaId");
		finderMethodMap.addNormalAttributeName("serviceMultiplicity");
		finderMethodMap.addNormalAttributeName("ordinal");
		finderMethodMap.addRelationshipName("projection");
		finderMethodMap.addRelationshipName("queryCriteria");
		finderMethodMap.addRelationshipName("authorizeCriteria");
		finderMethodMap.addRelationshipName("validateCriteria");
		finderMethodMap.addRelationshipName("conflictCriteria");
		finderMethodMap.addRelationshipName("orderBys");
		finderMethodMap.addRelationshipName("url");
	}

	public static Attribute[] allPersistentAttributes()
	{
		return finder.getPersistentAttributes();
	}

	public static List allRelatedFinders()
	{
		return finder.getRelationshipFinders();
	}

	public static List allDependentRelatedFinders()
	{
		return finder.getDependentRelationshipFinders();
	}

	public static ConstantStringSet zGetConstantStringSet(int index)
	{
		return constantStringSets[index];
	}

	public static ConstantIntSet zGetConstantIntSet(int index)
	{
		return constantIntSets[index];
	}

	public static ConstantShortSet zGetConstantShortSet(int index)
	{
		return constantShortSets[index];
	}

	public static Mapper zGetConstantJoin(int index)
	{
		return getConstantJoinPool()[index];
	}

	private static Mapper[] constantJoinPool;
	private static Mapper[] getConstantJoinPool()
	{
		if (constantJoinPool == null)
		{
			Mapper[] result = new Mapper[16];
			result[0] = ServiceFinder.projectionName().constructEqualityMapper(NamedProjectionFinder.name());
			result[1] = NamedProjectionFinder.name().constructEqualityMapper(ServiceFinder.projectionName());
			result[2] = ServiceFinder.queryCriteriaId().constructEqualityMapper(CriteriaFinder.id());
			result[3] = CriteriaFinder.id().constructEqualityMapper(ServiceFinder.queryCriteriaId());
			result[4] = ServiceFinder.authorizeCriteriaId().constructEqualityMapper(CriteriaFinder.id());
			result[5] = CriteriaFinder.id().constructEqualityMapper(ServiceFinder.authorizeCriteriaId());
			result[6] = ServiceFinder.validateCriteriaId().constructEqualityMapper(CriteriaFinder.id());
			result[7] = CriteriaFinder.id().constructEqualityMapper(ServiceFinder.validateCriteriaId());
			result[8] = ServiceFinder.conflictCriteriaId().constructEqualityMapper(CriteriaFinder.id());
			result[9] = CriteriaFinder.id().constructEqualityMapper(ServiceFinder.conflictCriteriaId());
			result[10] = ServiceFinder.serviceGroupName().constructEqualityMapper(ServiceOrderByFinder.serviceGroupName());
			result[11] = ServiceOrderByFinder.serviceGroupName().constructEqualityMapper(ServiceFinder.serviceGroupName());
			result[12] = ServiceFinder.urlString().constructEqualityMapper(ServiceOrderByFinder.serviceUrlString());
			result[13] = ServiceOrderByFinder.serviceUrlString().constructEqualityMapper(ServiceFinder.urlString());
			result[14] = ServiceFinder.verb().constructEqualityMapper(ServiceOrderByFinder.serviceVerb());
			result[15] = ServiceOrderByFinder.serviceVerb().constructEqualityMapper(ServiceFinder.verb());
			constantJoinPool = result;
		}

		return constantJoinPool;
	}

	public static SourceAttributeType getSourceAttributeType()
	{
		return null;
	}

	public static Service findOne(com.gs.fw.finder.Operation operation)
	{
		return findOne(operation, false);
	}

	public static Service findOneBypassCache(com.gs.fw.finder.Operation operation)
	{
		return findOne(operation, true);
	}

	public static ServiceList findMany(com.gs.fw.finder.Operation operation)
	{
		return (ServiceList) finder.findMany(operation);
	}

	public static ServiceList findManyBypassCache(com.gs.fw.finder.Operation operation)
	{
		return (ServiceList) finder.findManyBypassCache(operation);
	}

	private static Service findOne(com.gs.fw.finder.Operation operation, boolean bypassCache)
	{
		List found = getMithraObjectPortal().find((Operation) operation, bypassCache);
		return (Service) FinderUtils.findOne(found);
	}

	public static Service findByPrimaryKey(String serviceGroupName, String urlString, String verb)
	{
		return finder.findByPrimaryKey(serviceGroupName, urlString, verb);
	}

	private static final RelationshipHashStrategy forPrimaryKey = new PrimaryKeyRhs();
	private static final class PrimaryKeyRhs implements RelationshipHashStrategy
	{
		public boolean equalsForRelationship(Object _srcObject, Object _srcData, Object _targetData, Timestamp _asOfDate0, Timestamp _asOfDate1)
		{
			I3O3L3 _bean = (I3O3L3) _srcData;
			ServiceData _castedTargetData = (ServiceData) _targetData;
			if (_bean.getO1AsString().equals(_castedTargetData.getServiceGroupName()) && _bean.getO2AsString().equals(_castedTargetData.getUrlString()) && _bean.getO3AsString().equals(_castedTargetData.getVerb()))
			{
				return true;
			}

			return false;
		}

		public int computeHashCodeFromRelated(Object _srcObject, Object _srcData)
		{
			I3O3L3 _bean = (I3O3L3) _srcData;
			return HashUtil.combineHashes(HashUtil.combineHashes(HashUtil.hash(_bean.getO1AsString()),HashUtil.hash(_bean.getO2AsString())),HashUtil.hash(_bean.getO3AsString()));
		}

		public int computeOffHeapHashCodeFromRelated(Object _srcObject, Object _srcData)
		{
			I3O3L3 _bean = (I3O3L3) _srcData;
			return HashUtil.combineHashes(HashUtil.combineHashes(HashUtil.offHeapHash(_bean.getO1AsString()),HashUtil.offHeapHash(_bean.getO2AsString())),HashUtil.offHeapHash(_bean.getO3AsString()));
		}
	}

	public static Service zFindOneForRelationship(Operation operation)
	{
		List found = getMithraObjectPortal().findAsCachedQuery(operation, null, false, true, 0).getResult();
		return (Service) FinderUtils.findOne(found);
	}

	public static MithraObjectPortal getMithraObjectPortal()
	{
		return objectPortal.getInitializedPortal();
	}

	public static void clearQueryCache()
	{
		objectPortal.clearQueryCache();
	}

	public static void reloadCache()
	{
		objectPortal.reloadCache();
	}

	public static class ServiceRelatedFinder extends AbstractRelatedFinder
	implements ElementFinder
	{
		private List relationshipFinders;
		private List dependentRelationshipFinders;
		private StringAttribute serviceGroupName;
		private StringAttribute urlString;
		private StringAttribute verb;
		private StringAttribute projectionName;
		private LongAttribute queryCriteriaId;
		private LongAttribute authorizeCriteriaId;
		private LongAttribute validateCriteriaId;
		private LongAttribute conflictCriteriaId;
		private StringAttribute serviceMultiplicity;
		private IntegerAttribute ordinal;
		private ServiceProjectionFinderSubclass projection;
		private ServiceQueryCriteriaFinderSubclass queryCriteria;
		private ServiceAuthorizeCriteriaFinderSubclass authorizeCriteria;
		private ServiceValidateCriteriaFinderSubclass validateCriteria;
		private ServiceConflictCriteriaFinderSubclass conflictCriteria;
		private ServiceOrderBysFinderSubclass orderBys;
		private ServiceUrlFinderSubclass url;
		public ServiceRelatedFinder()
		{
			super();
		}

		public ServiceRelatedFinder(Mapper mapper)
		{
			super(mapper);
		}

		public String getFinderClassName()
		{
			return "klass.model.meta.domain.ServiceFinder";
		}

		public RelatedFinder getRelationshipFinderByName(String relationshipName)
		{
			return ServiceFinder.finderMethodMap.getRelationshipFinderByName(relationshipName, this);
		}

		public Attribute getAttributeByName(String attributeName)
		{
			return ServiceFinder.finderMethodMap.getAttributeByName(attributeName, this);
		}

		public com.gs.fw.common.mithra.extractor.Function getAttributeOrRelationshipSelector(String attributeName)
		{
			return ServiceFinder.finderMethodMap.getAttributeOrRelationshipSelectorFunction(attributeName, this);
		}

		public Attribute[] getPersistentAttributes()
		{
			Attribute[] attributes = new Attribute[10];
			attributes[0] = this.serviceGroupName();
			attributes[1] = this.urlString();
			attributes[2] = this.verb();
			attributes[3] = this.projectionName();
			attributes[4] = this.queryCriteriaId();
			attributes[5] = this.authorizeCriteriaId();
			attributes[6] = this.validateCriteriaId();
			attributes[7] = this.conflictCriteriaId();
			attributes[8] = this.serviceMultiplicity();
			attributes[9] = this.ordinal();
			return attributes;
		}

		public List getRelationshipFinders()
		{
			if (relationshipFinders == null)
			{
				List relatedFinders = new ArrayList(7);
				relatedFinders.add(this.projection());
				relatedFinders.add(this.queryCriteria());
				relatedFinders.add(this.authorizeCriteria());
				relatedFinders.add(this.validateCriteria());
				relatedFinders.add(this.conflictCriteria());
				relatedFinders.add(this.orderBys());
				relatedFinders.add(this.url());
				relationshipFinders = Collections.unmodifiableList(relatedFinders);
			}

			return relationshipFinders;
		}

		public List getDependentRelationshipFinders()
		{
			if (dependentRelationshipFinders == null)
			{
				List dependentRelatedFinders = new ArrayList(1);
				dependentRelatedFinders.add(this.orderBys());
				dependentRelationshipFinders = Collections.unmodifiableList(dependentRelatedFinders);
			}

			return dependentRelationshipFinders;
		}

		public Service findOne(com.gs.fw.finder.Operation operation)
		{
			return ServiceFinder.findOne(operation, false);
		}

		public Service findOneBypassCache(com.gs.fw.finder.Operation operation)
		{
			return ServiceFinder.findOne(operation, true);
		}

		public MithraList findMany(com.gs.fw.finder.Operation operation)
		{
			return new ServiceList((Operation) operation);
		}

		public MithraList findManyBypassCache(com.gs.fw.finder.Operation operation)
		{
			ServiceList result = (ServiceList) this.findMany(operation);
			result.setBypassCache(true);
			return result;
		}

		public MithraList constructEmptyList()
		{
			return new ServiceList();
		}

		public int getSerialVersionId()
		{
			return 1226704833;
		}

		public boolean isPure()
		{
			return false;
		}

		public boolean isTemporary()
		{
			return false;
		}

		public int getHierarchyDepth()
		{
			return 0;
		}

		public StringAttribute serviceGroupName()
		{
			StringAttribute result = this.serviceGroupName;
			if (result == null)
			{
				result = mapper == null ? SingleColumnStringAttribute.generate("\"SERVICE_GROUP_NAME\"","","serviceGroupName",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,false,false,this,null,true,false,-1,-1,-1,256,false, false) :
					new MappedStringAttribute(ServiceFinder.serviceGroupName(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("url");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "Url", "services");
				this.serviceGroupName = result;
			}

			return result;
		}

		public StringAttribute urlString()
		{
			StringAttribute result = this.urlString;
			if (result == null)
			{
				result = mapper == null ? SingleColumnStringAttribute.generate("\"URL_STRING\"","","urlString",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,false,false,this,null,true,false,-1,-1,-1,8192,false, false) :
					new MappedStringAttribute(ServiceFinder.urlString(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("url");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "Url", "services");
				this.urlString = result;
			}

			return result;
		}

		public StringAttribute verb()
		{
			StringAttribute result = this.verb;
			if (result == null)
			{
				result = mapper == null ? SingleColumnStringAttribute.generate("\"VERB\"","","verb",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,false,false,this,null,true,false,-1,-1,-1,256,false, false) :
					new MappedStringAttribute(ServiceFinder.verb(), this.mapper, this.zGetValueSelector());
				this.verb = result;
			}

			return result;
		}

		public StringAttribute projectionName()
		{
			StringAttribute result = this.projectionName;
			if (result == null)
			{
				result = mapper == null ? SingleColumnStringAttribute.generate("\"PROJECTION_NAME\"","","projectionName",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,true,false,this,null,true,false,-1,-1,-1,256,false, false) :
					new MappedStringAttribute(ServiceFinder.projectionName(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("projection");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "NamedProjection", "services");
				this.projectionName = result;
			}

			return result;
		}

		public LongAttribute queryCriteriaId()
		{
			LongAttribute result = this.queryCriteriaId;
			if (result == null)
			{
				result = mapper == null ? SingleColumnLongAttribute.generate("\"QUERY_CRITERIA_ID\"","","queryCriteriaId",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,true,false,this,null,true,false,false,-1,-1,-1,false, false) :
					new MappedLongAttribute(ServiceFinder.queryCriteriaId(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("queryCriteria");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "Criteria", "queryService");
				this.queryCriteriaId = result;
			}

			return result;
		}

		public LongAttribute authorizeCriteriaId()
		{
			LongAttribute result = this.authorizeCriteriaId;
			if (result == null)
			{
				result = mapper == null ? SingleColumnLongAttribute.generate("\"AUTHORIZE_CRITERIA_ID\"","","authorizeCriteriaId",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,true,false,this,null,true,false,false,-1,-1,-1,false, false) :
					new MappedLongAttribute(ServiceFinder.authorizeCriteriaId(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("authorizeCriteria");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "Criteria", "authorizeService");
				this.authorizeCriteriaId = result;
			}

			return result;
		}

		public LongAttribute validateCriteriaId()
		{
			LongAttribute result = this.validateCriteriaId;
			if (result == null)
			{
				result = mapper == null ? SingleColumnLongAttribute.generate("\"VALIDATE_CRITERIA_ID\"","","validateCriteriaId",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,true,false,this,null,true,false,false,-1,-1,-1,false, false) :
					new MappedLongAttribute(ServiceFinder.validateCriteriaId(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("validateCriteria");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "Criteria", "validateService");
				this.validateCriteriaId = result;
			}

			return result;
		}

		public LongAttribute conflictCriteriaId()
		{
			LongAttribute result = this.conflictCriteriaId;
			if (result == null)
			{
				result = mapper == null ? SingleColumnLongAttribute.generate("\"CONFLICT_CRITERIA_ID\"","","conflictCriteriaId",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,true,false,this,null,true,false,false,-1,-1,-1,false, false) :
					new MappedLongAttribute(ServiceFinder.conflictCriteriaId(), this.mapper, this.zGetValueSelector());
				result.zSetOwningRelationship("conflictCriteria");
				result.zSetOwningReverseRelationship("klass.model.meta.domain", "Criteria", "conflictService");
				this.conflictCriteriaId = result;
			}

			return result;
		}

		public StringAttribute serviceMultiplicity()
		{
			StringAttribute result = this.serviceMultiplicity;
			if (result == null)
			{
				result = mapper == null ? SingleColumnStringAttribute.generate("\"SERVICE_MULTIPLICITY\"","","serviceMultiplicity",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,false,false,this,null,true,false,-1,-1,-1,256,false, false) :
					new MappedStringAttribute(ServiceFinder.serviceMultiplicity(), this.mapper, this.zGetValueSelector());
				this.serviceMultiplicity = result;
			}

			return result;
		}

		public IntegerAttribute ordinal()
		{
			IntegerAttribute result = this.ordinal;
			if (result == null)
			{
				result = mapper == null ? SingleColumnIntegerAttribute.generate("\"ORDINAL\"","","ordinal",BUSINESS_CLASS_NAME_WITH_DOTS,IMPL_CLASS_NAME_WITH_SLASHES,false,false,this,null,true,false,false,-1,-1,-1,false, false) :
					new MappedIntegerAttribute(ServiceFinder.ordinal(), this.mapper, this.zGetValueSelector());
				this.ordinal = result;
			}

			return result;
		}

		public NamedProjectionFinder.NamedProjectionSingleFinderForRelatedClasses projection()
		{
			ServiceProjectionFinderSubclass result = this.projection;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(ServiceFinder.zGetServiceProjectionReverseMapper());
				newMapper.setToMany(false);
				result = new ServiceProjectionFinderSubclass(newMapper , this.zGetValueSelector() );
				this.projection = result;
			}

			return result;
		}

		public CriteriaFinder.CriteriaSingleFinderForRelatedClasses queryCriteria()
		{
			ServiceQueryCriteriaFinderSubclass result = this.queryCriteria;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(ServiceFinder.zGetServiceQueryCriteriaReverseMapper());
				newMapper.setToMany(false);
				result = new ServiceQueryCriteriaFinderSubclass(newMapper , this.zGetValueSelector() );
				this.queryCriteria = result;
			}

			return result;
		}

		public CriteriaFinder.CriteriaSingleFinderForRelatedClasses authorizeCriteria()
		{
			ServiceAuthorizeCriteriaFinderSubclass result = this.authorizeCriteria;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(ServiceFinder.zGetServiceAuthorizeCriteriaReverseMapper());
				newMapper.setToMany(false);
				result = new ServiceAuthorizeCriteriaFinderSubclass(newMapper , this.zGetValueSelector() );
				this.authorizeCriteria = result;
			}

			return result;
		}

		public CriteriaFinder.CriteriaSingleFinderForRelatedClasses validateCriteria()
		{
			ServiceValidateCriteriaFinderSubclass result = this.validateCriteria;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(ServiceFinder.zGetServiceValidateCriteriaReverseMapper());
				newMapper.setToMany(false);
				result = new ServiceValidateCriteriaFinderSubclass(newMapper , this.zGetValueSelector() );
				this.validateCriteria = result;
			}

			return result;
		}

		public CriteriaFinder.CriteriaSingleFinderForRelatedClasses conflictCriteria()
		{
			ServiceConflictCriteriaFinderSubclass result = this.conflictCriteria;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(ServiceFinder.zGetServiceConflictCriteriaReverseMapper());
				newMapper.setToMany(false);
				result = new ServiceConflictCriteriaFinderSubclass(newMapper , this.zGetValueSelector() );
				this.conflictCriteria = result;
			}

			return result;
		}

		public ServiceOrderByFinder.ServiceOrderByCollectionFinderForRelatedClasses orderBys()
		{
			ServiceOrderBysFinderSubclass result = this.orderBys;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(ServiceFinder.zGetServiceOrderBysReverseMapper());
				newMapper.setToMany(true);
				result = new ServiceOrderBysFinderSubclass(newMapper , this.zGetValueSelector() );
				this.orderBys = result;
			}

			return result;
		}

		public UrlFinder.UrlSingleFinderForRelatedClasses url()
		{
			ServiceUrlFinderSubclass result = this.url;
			if (result == null)
			{
				Mapper newMapper = combineWithMapperIfExists(UrlFinder.zGetUrlServicesMapper());
				newMapper.setToMany(false);
				result = new ServiceUrlFinderSubclass(newMapper , this.zGetValueSelector() );
				this.url = result;
			}

			return result;
		}

		public Attribute getSourceAttribute()
		{
			return null;
		}

		private Mapper combineWithMapperIfExists(Mapper newMapper)
		{
			if (this.mapper != null)
			{
				return new LinkedMapper(this.mapper, newMapper);
			}

			return newMapper;
		}

		public Attribute[] getPrimaryKeyAttributes()
		{
			return ServiceFinder.getPrimaryKeyAttributes();
		}

		public VersionAttribute getVersionAttribute()
		{
			return null;
		}

		public MithraObjectPortal getMithraObjectPortal()
		{
			return ServiceFinder.getMithraObjectPortal();
		}
	}

	public static class ServiceCollectionFinder extends ServiceRelatedFinder
	{
		public ServiceCollectionFinder(Mapper mapper)
		{
			super(mapper);
		}
	}

	public static abstract class ServiceCollectionFinderForRelatedClasses
	extends ServiceCollectionFinder
	implements DeepRelationshipAttribute
	{
		public ServiceCollectionFinderForRelatedClasses(Mapper mapper)
		{
			super(mapper);
		}

		protected NormalAndListValueSelector zGetValueSelector()
		{
			return this;
		}
	}

	public static class ServiceSingleFinder extends ServiceRelatedFinder
	implements ToOneFinder
	{
		public ServiceSingleFinder(Mapper mapper)
		{
			super(mapper);
		}

		public ServiceSingleFinder()
		{
			super(null);
		}

		public Operation eq(Service other)
		{
			return this.serviceGroupName().eq(other.getServiceGroupName())
			.and(this.urlString().eq(other.getUrlString()))
			.and(this.verb().eq(other.getVerb()))
			;
		}
		// this implementation uses private API. Do NOT copy to application code. Application code must use normal operations for lookups.
		public Service findByPrimaryKey(String serviceGroupName, String urlString, String verb)
		{
			Service _result = null;
			Operation _op = null;
			Object _related = null;
			if (serviceGroupName != null && urlString != null && verb != null)
			{
				I3O3L3 _bean = I3O3L3.POOL.getOrConstruct();
				_bean.setO1(serviceGroupName);
				_bean.setO2(urlString);
				_bean.setO3(verb);
				MithraObjectPortal _portal = this.getMithraObjectPortal();
				_related = _portal.getAsOneFromCacheForFind(_bean, _bean, forPrimaryKey, null, null);
				_bean.release();
			}

			if (!(_related instanceof NulledRelation)) _result = (Service) _related;
			if (_related == null)
			{
				_op = this.serviceGroupName().eq(serviceGroupName).and(this.urlString().eq(urlString)).and(this.verb().eq(verb));
			}

			if (_op != null)
			{
				_result = this.findOne(_op);
			}

			return _result;
		}
	}

	public static abstract class ServiceSingleFinderForRelatedClasses extends ServiceSingleFinder implements DeepRelationshipAttribute
	{
		public ServiceSingleFinderForRelatedClasses(Mapper mapper)
		{
			super(mapper);
		}

		protected NormalAndListValueSelector zGetValueSelector()
		{
			return this;
		}
	}

	private static Mapper projectionReverseMapper = null;
	public static Mapper zGetServiceProjectionReverseMapper()
	{
		if (projectionReverseMapper == null)
		{
			projectionReverseMapper = zConstructServiceProjectionReverseMapper();
		}

		return projectionReverseMapper;
	}

	private static Mapper projectionMapper = null;
	public static Mapper zGetServiceProjectionMapper()
	{
		if (projectionMapper == null)
		{
			projectionMapper = zConstructServiceProjectionMapper();
		}

		return projectionMapper;
	}

	private static Mapper projectionPureReverseMapper = null;
	public static Mapper zGetServiceProjectionPureReverseMapper()
	{
		if (projectionPureReverseMapper == null)
		{
			projectionPureReverseMapper = zConstructServiceProjectionPureReverseMapper();
		}

		return projectionPureReverseMapper;
	}

	private static Mapper zConstructServiceProjectionPureReverseMapper()
	{
		Mapper projectionMapper = ServiceFinder.zGetConstantJoin(0);
		projectionMapper.setName("projection");
		return projectionMapper;
	}

	private static Mapper zConstructServiceProjectionReverseMapper()
	{
		Mapper projectionMapper = ServiceFinder.zGetConstantJoin(0);
		projectionMapper.setName("projection");
		return projectionMapper;
	}

	private static Mapper zConstructServiceProjectionMapper()
	{
		Mapper projectionMapper = ServiceFinder.zGetConstantJoin(1);
		projectionMapper.setName("services");
		return projectionMapper;
	}

	private static Mapper queryCriteriaReverseMapper = null;
	public static Mapper zGetServiceQueryCriteriaReverseMapper()
	{
		if (queryCriteriaReverseMapper == null)
		{
			queryCriteriaReverseMapper = zConstructServiceQueryCriteriaReverseMapper();
		}

		return queryCriteriaReverseMapper;
	}

	private static Mapper queryCriteriaMapper = null;
	public static Mapper zGetServiceQueryCriteriaMapper()
	{
		if (queryCriteriaMapper == null)
		{
			queryCriteriaMapper = zConstructServiceQueryCriteriaMapper();
		}

		return queryCriteriaMapper;
	}

	private static Mapper queryCriteriaPureReverseMapper = null;
	public static Mapper zGetServiceQueryCriteriaPureReverseMapper()
	{
		if (queryCriteriaPureReverseMapper == null)
		{
			queryCriteriaPureReverseMapper = zConstructServiceQueryCriteriaPureReverseMapper();
		}

		return queryCriteriaPureReverseMapper;
	}

	private static Mapper zConstructServiceQueryCriteriaPureReverseMapper()
	{
		Mapper queryCriteriaMapper = ServiceFinder.zGetConstantJoin(2);
		queryCriteriaMapper.setName("queryCriteria");
		return queryCriteriaMapper;
	}

	private static Mapper zConstructServiceQueryCriteriaReverseMapper()
	{
		Mapper queryCriteriaMapper = ServiceFinder.zGetConstantJoin(2);
		queryCriteriaMapper.setName("queryCriteria");
		return queryCriteriaMapper;
	}

	private static Mapper zConstructServiceQueryCriteriaMapper()
	{
		Mapper queryCriteriaMapper = ServiceFinder.zGetConstantJoin(3);
		queryCriteriaMapper.setName("queryService");
		return queryCriteriaMapper;
	}

	private static Mapper authorizeCriteriaReverseMapper = null;
	public static Mapper zGetServiceAuthorizeCriteriaReverseMapper()
	{
		if (authorizeCriteriaReverseMapper == null)
		{
			authorizeCriteriaReverseMapper = zConstructServiceAuthorizeCriteriaReverseMapper();
		}

		return authorizeCriteriaReverseMapper;
	}

	private static Mapper authorizeCriteriaMapper = null;
	public static Mapper zGetServiceAuthorizeCriteriaMapper()
	{
		if (authorizeCriteriaMapper == null)
		{
			authorizeCriteriaMapper = zConstructServiceAuthorizeCriteriaMapper();
		}

		return authorizeCriteriaMapper;
	}

	private static Mapper authorizeCriteriaPureReverseMapper = null;
	public static Mapper zGetServiceAuthorizeCriteriaPureReverseMapper()
	{
		if (authorizeCriteriaPureReverseMapper == null)
		{
			authorizeCriteriaPureReverseMapper = zConstructServiceAuthorizeCriteriaPureReverseMapper();
		}

		return authorizeCriteriaPureReverseMapper;
	}

	private static Mapper zConstructServiceAuthorizeCriteriaPureReverseMapper()
	{
		Mapper authorizeCriteriaMapper = ServiceFinder.zGetConstantJoin(4);
		authorizeCriteriaMapper.setName("authorizeCriteria");
		return authorizeCriteriaMapper;
	}

	private static Mapper zConstructServiceAuthorizeCriteriaReverseMapper()
	{
		Mapper authorizeCriteriaMapper = ServiceFinder.zGetConstantJoin(4);
		authorizeCriteriaMapper.setName("authorizeCriteria");
		return authorizeCriteriaMapper;
	}

	private static Mapper zConstructServiceAuthorizeCriteriaMapper()
	{
		Mapper authorizeCriteriaMapper = ServiceFinder.zGetConstantJoin(5);
		authorizeCriteriaMapper.setName("authorizeService");
		return authorizeCriteriaMapper;
	}

	private static Mapper validateCriteriaReverseMapper = null;
	public static Mapper zGetServiceValidateCriteriaReverseMapper()
	{
		if (validateCriteriaReverseMapper == null)
		{
			validateCriteriaReverseMapper = zConstructServiceValidateCriteriaReverseMapper();
		}

		return validateCriteriaReverseMapper;
	}

	private static Mapper validateCriteriaMapper = null;
	public static Mapper zGetServiceValidateCriteriaMapper()
	{
		if (validateCriteriaMapper == null)
		{
			validateCriteriaMapper = zConstructServiceValidateCriteriaMapper();
		}

		return validateCriteriaMapper;
	}

	private static Mapper validateCriteriaPureReverseMapper = null;
	public static Mapper zGetServiceValidateCriteriaPureReverseMapper()
	{
		if (validateCriteriaPureReverseMapper == null)
		{
			validateCriteriaPureReverseMapper = zConstructServiceValidateCriteriaPureReverseMapper();
		}

		return validateCriteriaPureReverseMapper;
	}

	private static Mapper zConstructServiceValidateCriteriaPureReverseMapper()
	{
		Mapper validateCriteriaMapper = ServiceFinder.zGetConstantJoin(6);
		validateCriteriaMapper.setName("validateCriteria");
		return validateCriteriaMapper;
	}

	private static Mapper zConstructServiceValidateCriteriaReverseMapper()
	{
		Mapper validateCriteriaMapper = ServiceFinder.zGetConstantJoin(6);
		validateCriteriaMapper.setName("validateCriteria");
		return validateCriteriaMapper;
	}

	private static Mapper zConstructServiceValidateCriteriaMapper()
	{
		Mapper validateCriteriaMapper = ServiceFinder.zGetConstantJoin(7);
		validateCriteriaMapper.setName("validateService");
		return validateCriteriaMapper;
	}

	private static Mapper conflictCriteriaReverseMapper = null;
	public static Mapper zGetServiceConflictCriteriaReverseMapper()
	{
		if (conflictCriteriaReverseMapper == null)
		{
			conflictCriteriaReverseMapper = zConstructServiceConflictCriteriaReverseMapper();
		}

		return conflictCriteriaReverseMapper;
	}

	private static Mapper conflictCriteriaMapper = null;
	public static Mapper zGetServiceConflictCriteriaMapper()
	{
		if (conflictCriteriaMapper == null)
		{
			conflictCriteriaMapper = zConstructServiceConflictCriteriaMapper();
		}

		return conflictCriteriaMapper;
	}

	private static Mapper conflictCriteriaPureReverseMapper = null;
	public static Mapper zGetServiceConflictCriteriaPureReverseMapper()
	{
		if (conflictCriteriaPureReverseMapper == null)
		{
			conflictCriteriaPureReverseMapper = zConstructServiceConflictCriteriaPureReverseMapper();
		}

		return conflictCriteriaPureReverseMapper;
	}

	private static Mapper zConstructServiceConflictCriteriaPureReverseMapper()
	{
		Mapper conflictCriteriaMapper = ServiceFinder.zGetConstantJoin(8);
		conflictCriteriaMapper.setName("conflictCriteria");
		return conflictCriteriaMapper;
	}

	private static Mapper zConstructServiceConflictCriteriaReverseMapper()
	{
		Mapper conflictCriteriaMapper = ServiceFinder.zGetConstantJoin(8);
		conflictCriteriaMapper.setName("conflictCriteria");
		return conflictCriteriaMapper;
	}

	private static Mapper zConstructServiceConflictCriteriaMapper()
	{
		Mapper conflictCriteriaMapper = ServiceFinder.zGetConstantJoin(9);
		conflictCriteriaMapper.setName("conflictService");
		return conflictCriteriaMapper;
	}

	private static Mapper orderBysReverseMapper = null;
	public static Mapper zGetServiceOrderBysReverseMapper()
	{
		if (orderBysReverseMapper == null)
		{
			orderBysReverseMapper = zConstructServiceOrderBysReverseMapper();
		}

		return orderBysReverseMapper;
	}

	private static Mapper orderBysMapper = null;
	public static Mapper zGetServiceOrderBysMapper()
	{
		if (orderBysMapper == null)
		{
			orderBysMapper = zConstructServiceOrderBysMapper();
		}

		return orderBysMapper;
	}

	private static Mapper orderBysPureReverseMapper = null;
	public static Mapper zGetServiceOrderBysPureReverseMapper()
	{
		if (orderBysPureReverseMapper == null)
		{
			orderBysPureReverseMapper = zConstructServiceOrderBysPureReverseMapper();
		}

		return orderBysPureReverseMapper;
	}

	private static Mapper zConstructServiceOrderBysPureReverseMapper()
	{
		InternalList orderBysMapperMapperList = new InternalList(3);
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(10));
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(12));
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(14));
		Mapper orderBysMapper = new MultiEqualityMapper(orderBysMapperMapperList);
		orderBysMapper.setName("orderBys");
		return orderBysMapper;
	}

	private static Mapper zConstructServiceOrderBysReverseMapper()
	{
		InternalList orderBysMapperMapperList = new InternalList(3);
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(10));
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(12));
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(14));
		Mapper orderBysMapper = new MultiEqualityMapper(orderBysMapperMapperList);
		orderBysMapper.setName("orderBys");
		return orderBysMapper;
	}

	private static Mapper zConstructServiceOrderBysMapper()
	{
		InternalList orderBysMapperMapperList = new InternalList(3);
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(11));
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(13));
		orderBysMapperMapperList.add(ServiceFinder.zGetConstantJoin(15));
		Mapper orderBysMapper = new MultiEqualityMapper(orderBysMapperMapperList);
		orderBysMapper.setName("service");
		return orderBysMapper;
	}

	/** maps to \"SERVICE\".\"SERVICE_GROUP_NAME\" **/
	public static StringAttribute serviceGroupName()
	{
		return finder.serviceGroupName();
	}

	/** maps to \"SERVICE\".\"URL_STRING\" **/
	public static StringAttribute urlString()
	{
		return finder.urlString();
	}

	/** maps to \"SERVICE\".\"VERB\" **/
	public static StringAttribute verb()
	{
		return finder.verb();
	}

	/** maps to \"SERVICE\".\"PROJECTION_NAME\" **/
	public static StringAttribute projectionName()
	{
		return finder.projectionName();
	}

	/** maps to \"SERVICE\".\"QUERY_CRITERIA_ID\" **/
	public static LongAttribute queryCriteriaId()
	{
		return finder.queryCriteriaId();
	}

	/** maps to \"SERVICE\".\"AUTHORIZE_CRITERIA_ID\" **/
	public static LongAttribute authorizeCriteriaId()
	{
		return finder.authorizeCriteriaId();
	}

	/** maps to \"SERVICE\".\"VALIDATE_CRITERIA_ID\" **/
	public static LongAttribute validateCriteriaId()
	{
		return finder.validateCriteriaId();
	}

	/** maps to \"SERVICE\".\"CONFLICT_CRITERIA_ID\" **/
	public static LongAttribute conflictCriteriaId()
	{
		return finder.conflictCriteriaId();
	}

	/** maps to \"SERVICE\".\"SERVICE_MULTIPLICITY\" **/
	public static StringAttribute serviceMultiplicity()
	{
		return finder.serviceMultiplicity();
	}

	/** maps to \"SERVICE\".\"ORDINAL\" **/
	public static IntegerAttribute ordinal()
	{
		return finder.ordinal();
	}

	public static NamedProjectionFinder.NamedProjectionSingleFinderForRelatedClasses projection()
	{
		return finder.projection();
	}

	public static class ServiceProjectionFinderSubclass extends NamedProjectionFinder.NamedProjectionSingleFinderForRelatedClasses
	{
		public ServiceProjectionFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = null;
			this._type = SIMPLE_TO_ONE;
			this._name = "projection";
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceProjectionFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		protected NamedProjection plainValueOf(Service _obj)
		{
			return _obj.getProjection();
		}

		protected NamedProjectionList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getProjections();
		}
	}

	public static CriteriaFinder.CriteriaSingleFinderForRelatedClasses queryCriteria()
	{
		return finder.queryCriteria();
	}

	public static class ServiceQueryCriteriaFinderSubclass extends CriteriaFinder.CriteriaSingleFinderForRelatedClasses
	{
		public ServiceQueryCriteriaFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = null;
			this._type = SIMPLE_TO_ONE;
			this._name = "queryCriteria";
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceQueryCriteriaFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		protected Criteria plainValueOf(Service _obj)
		{
			return _obj.getQueryCriteria();
		}

		protected CriteriaList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getQueryCriterias();
		}
	}

	public static CriteriaFinder.CriteriaSingleFinderForRelatedClasses authorizeCriteria()
	{
		return finder.authorizeCriteria();
	}

	public static class ServiceAuthorizeCriteriaFinderSubclass extends CriteriaFinder.CriteriaSingleFinderForRelatedClasses
	{
		public ServiceAuthorizeCriteriaFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = null;
			this._type = SIMPLE_TO_ONE;
			this._name = "authorizeCriteria";
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceAuthorizeCriteriaFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		protected Criteria plainValueOf(Service _obj)
		{
			return _obj.getAuthorizeCriteria();
		}

		protected CriteriaList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getAuthorizeCriterias();
		}
	}

	public static CriteriaFinder.CriteriaSingleFinderForRelatedClasses validateCriteria()
	{
		return finder.validateCriteria();
	}

	public static class ServiceValidateCriteriaFinderSubclass extends CriteriaFinder.CriteriaSingleFinderForRelatedClasses
	{
		public ServiceValidateCriteriaFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = null;
			this._type = SIMPLE_TO_ONE;
			this._name = "validateCriteria";
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceValidateCriteriaFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		protected Criteria plainValueOf(Service _obj)
		{
			return _obj.getValidateCriteria();
		}

		protected CriteriaList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getValidateCriterias();
		}
	}

	public static CriteriaFinder.CriteriaSingleFinderForRelatedClasses conflictCriteria()
	{
		return finder.conflictCriteria();
	}

	public static class ServiceConflictCriteriaFinderSubclass extends CriteriaFinder.CriteriaSingleFinderForRelatedClasses
	{
		public ServiceConflictCriteriaFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = null;
			this._type = SIMPLE_TO_ONE;
			this._name = "conflictCriteria";
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceConflictCriteriaFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		protected Criteria plainValueOf(Service _obj)
		{
			return _obj.getConflictCriteria();
		}

		protected CriteriaList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getConflictCriterias();
		}
	}

	public static ServiceOrderByFinder.ServiceOrderByCollectionFinderForRelatedClasses orderBys()
	{
		return finder.orderBys();
	}

	public static class ServiceOrderBysFinderSubclass extends ServiceOrderByFinder.ServiceOrderByCollectionFinderForRelatedClasses
	{
		public ServiceOrderBysFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = ServiceOrderByFinder.ordinal().ascendingOrderBy();
			this._type = SIMPLE_TO_MANY;
			this._name = "orderBys";
			this.zSetRelationshipMultiExtractor(RelationshipMultiExtractor.withLeftAttributes(
				ServiceOrderByFinder.serviceGroupName(),
				ServiceOrderByFinder.serviceUrlString(),
				ServiceOrderByFinder.serviceVerb()).withExtractors(
				ServiceFinder.serviceGroupName(),
				ServiceFinder.urlString(),
				ServiceFinder.verb()));
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceOrderBysFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		public boolean isModifiedSinceDetachment(MithraTransactionalObject _obj)
		{
			return ((Service) _obj).isOrderBysModifiedSinceDetachment();
		}

		protected ServiceOrderByList plainValueOf(Service _obj)
		{
			return _obj.getOrderBys();
		}

		protected ServiceOrderByList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getOrderBys();
		}
	}

	public static UrlFinder.UrlSingleFinderForRelatedClasses url()
	{
		return finder.url();
	}

	public static class ServiceUrlFinderSubclass extends UrlFinder.UrlSingleFinderForRelatedClasses
	{
		public ServiceUrlFinderSubclass(Mapper mapper, NormalAndListValueSelector parentSelector )
		{
			super(mapper);
			this._parentSelector = (AbstractRelatedFinder) parentSelector;
			this._orderBy = null;
			this._type = SIMPLE_TO_ONE;
			this._name = "url";
			this.zSetRelationshipMultiExtractor(RelationshipMultiExtractor.withLeftAttributes(
				UrlFinder.serviceGroupName(),
				UrlFinder.url()).withExtractors(
				ServiceFinder.serviceGroupName(),
				ServiceFinder.urlString()));
		}

		public DeepRelationshipAttribute copy()
		{
			return new ServiceUrlFinderSubclass(zGetMapper(), (NormalAndListValueSelector) this._parentSelector
			);
		}

		protected Url plainValueOf(Service _obj)
		{
			return _obj.getUrl();
		}

		protected UrlList plainListValueOf(Object _obj)
		{
			return ((ServiceList)_obj).getUrls();
		}
	}

	public static Operation eq(Service other)
	{
		return finder.eq(other);
	}

	public static Operation all()
	{
		return new All(serviceGroupName());
	}

	public static ServiceSingleFinder getFinderInstance()
	{
		return finder;
	}

	public static Attribute[] getPrimaryKeyAttributes()
	{
		return new Attribute[] 
		{
			serviceGroupName()
			, urlString()
			, verb()
		}

		;
	}

	public static Attribute[] getImmutableAttributes()
	{
		return new Attribute[] 
		{
			serviceGroupName()
			, serviceGroupName()
			, urlString()
			, verb()
		}

		;
	}

	public static AsOfAttribute[] getAsOfAttributes()
	{
		return null;
	}

	protected static void initializeIndicies(Cache cache)
	{
		cache.addIndex("0 Index", new Attribute[] 
		{
			projectionName()
		}

		);
		cache.addIndex("1 Index", new Attribute[] 
		{
			queryCriteriaId()
		}

		);
		cache.addIndex("2 Index", new Attribute[] 
		{
			authorizeCriteriaId()
		}

		);
		cache.addIndex("3 Index", new Attribute[] 
		{
			validateCriteriaId()
		}

		);
		cache.addIndex("4 Index", new Attribute[] 
		{
			conflictCriteriaId()
		}

		);
		cache.addIndex("5 Index", new Attribute[] 
		{
			serviceGroupName()
			, urlString()
		}

		);
	}

	protected static void initializePortal(MithraObjectDeserializer objectFactory, Cache cache,
		MithraConfigurationManager.Config config)
	{
		initializeIndicies(cache);
		isFullCache = cache.isFullCache();
		isOffHeap = cache.isOffHeap();
		MithraObjectPortal portal;
		if (config.isParticipatingInTx())
		{
			portal = new MithraTransactionalPortal(objectFactory, cache, getFinderInstance(),
				config.getRelationshipCacheSize(), config.getMinQueriesToKeep(), null,
				null, null, 0,
				(MithraObjectPersister) objectFactory);
		}
		else
		{
			portal = new MithraReadOnlyPortal(objectFactory, cache, getFinderInstance(),
				config.getRelationshipCacheSize(), config.getMinQueriesToKeep(), null,
				null, null, 0,
				(MithraObjectPersister) objectFactory);
		}

		portal.setParentFinders(new RelatedFinder[] 
		{
			NamedProjectionFinder.getFinderInstance(),UrlFinder.getFinderInstance(),
		}

		);
		config.initializePortal(portal);
		objectPortal.destroy();
		objectPortal = portal;
	}

	protected static void initializeClientPortal(MithraObjectDeserializer objectFactory, Cache cache,
		MithraConfigurationManager.Config config)
	{
		initializeIndicies(cache);
		isFullCache = cache.isFullCache();
		isOffHeap = cache.isOffHeap();
		MithraObjectPortal portal;
		if (config.isParticipatingInTx())
		{
			portal = new MithraTransactionalPortal(objectFactory, cache, getFinderInstance(),
				config.getRelationshipCacheSize(), config.getMinQueriesToKeep(),
				null, null,
				null, 0,
				new RemoteMithraObjectPersister(config.getRemoteMithraService(), getFinderInstance(), false));
		}
		else
		{
			portal = new MithraReadOnlyPortal(objectFactory, cache, getFinderInstance(),
				config.getRelationshipCacheSize(), config.getMinQueriesToKeep(),
				null, null,
				null, 0,
				new RemoteMithraObjectPersister(config.getRemoteMithraService(), getFinderInstance(), false));
		}

		portal.setParentFinders(new RelatedFinder[] 
		{
			NamedProjectionFinder.getFinderInstance(),UrlFinder.getFinderInstance(),
		}

		);
		config.initializePortal(portal);
		objectPortal.destroy();
		objectPortal = portal;
	}

	public static boolean isFullCache()
	{
		return isFullCache;
	}

	public static boolean isOffHeap()
	{
		return isOffHeap;
	}

	public static Attribute getAttributeByName(String attributeName)
	{
		return finder.getAttributeByName(attributeName);
	}

	public static com.gs.fw.common.mithra.extractor.Function getAttributeOrRelationshipSelector(String attributeName)
	{
		return finder.getAttributeOrRelationshipSelector(attributeName);
	}

	public static RelatedFinder getRelatedFinderByName(String relationshipName)
	{
		return finder.getRelationshipFinderByName(relationshipName);
	}

	public static DoubleAttribute[] zGetDoubleAttributes()
	{
		DoubleAttribute[] result = new DoubleAttribute[0];
		return result;
	}

	public static BigDecimalAttribute[] zGetBigDecimalAttributes()
	{
		BigDecimalAttribute[] result = new BigDecimalAttribute[0];
		return result;
	}

	public static void zResetPortal()
	{
		objectPortal.destroy();
		objectPortal = new UninitializedPortal("klass.model.meta.domain.Service");
		isFullCache = false;
		isOffHeap = false;
	}

	public static void setTransactionModeFullTransactionParticipation(MithraTransaction tx)
	{
		tx.setTxParticipationMode(objectPortal, FullTransactionalParticipationMode.getInstance());
	}

	public static void setTransactionModeReadCacheUpdateCausesRefreshAndLock(MithraTransaction tx)
	{
		tx.setTxParticipationMode(objectPortal, ReadCacheUpdateCausesRefreshAndLockTxParticipationMode.getInstance());
	}

	public static void registerForNotification(MithraApplicationClassLevelNotificationListener listener)
	{
		getMithraObjectPortal().registerForApplicationClassLevelNotification(listener);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy