Class FilterSet

  • All Implemented Interfaces:
    java.io.Serializable, IMutable, IObject, Filterable

    @Entity
    @Indexed(index="FullText")
    @ClassBridge(name="details",
                 impl=DetailsFieldBridge.class,
                 index=UN_TOKENIZED,
                 store=NO)
    public class FilterSet
    extends java.lang.Object
    implements java.io.Serializable, IObject, IMutable
    These filter definitions are used by the security system to eliminate non-readable objects from queries. The regular user does not need to worry about them, as they will be injected directly into the SQL (not HQL)
    See Also:
    Serialized Form
    • Field Detail

      • id

        protected java.lang.Long id
      • version

        protected java.lang.Integer version
      • manufacturer

        protected java.lang.String manufacturer
      • model

        protected java.lang.String model
      • lotNumber

        protected java.lang.String lotNumber
      • serialNumber

        protected java.lang.String serialNumber
      • OWNER_FILTER_EXCITATIONFILTERLINK

        public static final java.lang.String OWNER_FILTER_EXCITATIONFILTERLINK
        See Also:
        Constant Field Values
      • GROUP_FILTER_EXCITATIONFILTERLINK

        public static final java.lang.String GROUP_FILTER_EXCITATIONFILTERLINK
        See Also:
        Constant Field Values
      • EVENT_FILTER_EXCITATIONFILTERLINK

        public static final java.lang.String EVENT_FILTER_EXCITATIONFILTERLINK
        See Also:
        Constant Field Values
      • PERMS_FILTER_EXCITATIONFILTERLINK

        public static final java.lang.String PERMS_FILTER_EXCITATIONFILTERLINK
        See Also:
        Constant Field Values
      • OWNER_FILTER_EMISSIONFILTERLINK

        public static final java.lang.String OWNER_FILTER_EMISSIONFILTERLINK
        See Also:
        Constant Field Values
      • GROUP_FILTER_EMISSIONFILTERLINK

        public static final java.lang.String GROUP_FILTER_EMISSIONFILTERLINK
        See Also:
        Constant Field Values
      • EVENT_FILTER_EMISSIONFILTERLINK

        public static final java.lang.String EVENT_FILTER_EMISSIONFILTERLINK
        See Also:
        Constant Field Values
      • PERMS_FILTER_EMISSIONFILTERLINK

        public static final java.lang.String PERMS_FILTER_EMISSIONFILTERLINK
        See Also:
        Constant Field Values
      • details

        protected Details details
      • EXCITATIONFILTERLINKCOUNTPEROWNER

        public static final java.lang.String EXCITATIONFILTERLINKCOUNTPEROWNER
        See Also:
        Constant Field Values
      • EXCITATIONFILTERLINK

        public static final java.lang.String EXCITATIONFILTERLINK
        See Also:
        Constant Field Values
      • EMISSIONFILTERLINKCOUNTPEROWNER

        public static final java.lang.String EMISSIONFILTERLINKCOUNTPEROWNER
        See Also:
        Constant Field Values
      • EMISSIONFILTERLINK

        public static final java.lang.String EMISSIONFILTERLINK
        See Also:
        Constant Field Values
      • FIELDS

        public static final java.util.Set<java.lang.String> FIELDS
      • _dynamicFields

        protected java.util.Map<java.lang.String,​java.lang.Object> _dynamicFields
      • _loaded

        protected boolean _loaded
    • Constructor Detail

      • FilterSet

        public FilterSet()
      • FilterSet

        protected FilterSet​(java.lang.Long id)
      • FilterSet

        public FilterSet​(java.lang.Long id,
                         boolean loaded)
        Main constructor.
      • FilterSet

        public FilterSet​(Instrument _instrument)
    • Method Detail

      • getId

        @DocumentId
        public java.lang.Long getId()
        The DB unique identifier for this object. You are not responsible for setting the id; however, it can be useful for creating "unloaded" versions of your objects. Each top-level entity contains an id field of type long. For all objects returned from the server, this value will be non-null, which doesn't necessarily hold for the other fields.
        Specified by:
        getId in interface IObject
        Returns:
        Long primary key. May be null.
      • setId

        public void setId​(java.lang.Long id)
        Description copied from interface: IObject
        usually unneeded. Ids are managed by the backend.
        Specified by:
        setId in interface IObject
        Parameters:
        id - Long value for this id.
      • getVersion

        public java.lang.Integer getVersion()
        This version number is controlled by the database for optimisitic locking.
        Specified by:
        getVersion in interface IMutable
      • setVersion

        public void setVersion​(java.lang.Integer version)
        Description copied from interface: IMutable
        use with caution. In general, the version should only be altered by the backend. In the best case, an exception will be thrown for a version not equal to the current DB value. In the worst (though rare) case, the new version could match the database, and override optimistic lock checks that are supposed to prevent data loss.
        Specified by:
        setVersion in interface IMutable
        Parameters:
        version - Value for this objects version.
      • getManufacturer

        @Field(index=TOKENIZED) @Field(index=TOKENIZED,analyzer=@Analyzer(impl=ConfiguredAnalyzer.class),name="combined_fields")
        public java.lang.String getManufacturer()
        Simple field ome.model.acquisition.FilterSet.manufacturer (java.lang.String)
      • setManufacturer

        public void setManufacturer​(java.lang.String manufacturer)
      • getModel

        @Field(index=TOKENIZED) @Field(index=TOKENIZED,analyzer=@Analyzer(impl=ConfiguredAnalyzer.class),name="combined_fields")
        public java.lang.String getModel()
        Simple field ome.model.acquisition.FilterSet.model (java.lang.String)
      • setModel

        public void setModel​(java.lang.String model)
      • getLotNumber

        @Field(index=TOKENIZED) @Field(index=TOKENIZED,analyzer=@Analyzer(impl=ConfiguredAnalyzer.class),name="combined_fields")
        public java.lang.String getLotNumber()
        Simple field ome.model.acquisition.FilterSet.lotNumber (java.lang.String)
      • setLotNumber

        public void setLotNumber​(java.lang.String lotNumber)
      • getSerialNumber

        @Field(index=TOKENIZED) @Field(index=TOKENIZED,analyzer=@Analyzer(impl=ConfiguredAnalyzer.class),name="combined_fields")
        public java.lang.String getSerialNumber()
        Simple field ome.model.acquisition.FilterSet.serialNumber (java.lang.String)
      • setSerialNumber

        public void setSerialNumber​(java.lang.String serialNumber)
      • getInstrument

        public Instrument getInstrument()
        Many-to-one field ome.model.acquisition.FilterSet.instrument (ome.model.acquisition.Instrument)
      • setInstrument

        public void setInstrument​(Instrument instrument)
      • getExcitationFilterLink

        protected java.util.Set<FilterSetExcitationFilterLink> getExcitationFilterLink()
        returns excitationFilterLink . You should not modify this collection unless you know what you are doing. Use the iterate method instead. one-to-many Set ome.model.acquisition.FilterSet.excitationFilterLink (ome.model.acquisition.FilterSetExcitationFilterLink)
      • setExcitationFilterLink

        protected void setExcitationFilterLink​(java.util.Set<FilterSetExcitationFilterLink> excitationFilterLink)
        setter for excitationFilterLink should be avoided. Does not fulfill normal semantics.
      • sizeOfExcitationFilterLink

        public int sizeOfExcitationFilterLink()
        returns the size of excitationFilterLink. If less than zero, the Set was null.
      • iterateExcitationFilterLink

        public java.util.Iterator<FilterSetExcitationFilterLink> iterateExcitationFilterLink()
        should be used rather than accessing the excitationFilterLink set directly. This method will never return null, but rather will return an instance of EmptyIterator. To test for a null collection, see of sizeOfExcitationFilterLink() is less than zero.
      • unmodifiableExcitationFilterLink

        public java.util.Collection<FilterSetExcitationFilterLink> unmodifiableExcitationFilterLink()
        Returns an unmodifiable collection-view
      • collectExcitationFilterLink

        public <E> java.util.List<E> collectExcitationFilterLink​(CBlock<E> block)
        takes a CBlock and calls the block once for each ome.model.acquisition.FilterSetExcitationFilterLink while collecting the results. If block == null, then the iterator values themselves are collected. This method uses iterateExcitationFilterLink() internally and so will return a value even if the underlying collection is null.
      • addFilterSetExcitationFilterLink

        public void addFilterSetExcitationFilterLink​(FilterSetExcitationFilterLink target)
        use instead of setExcitationFilterLink . Makes the necessary call on ome.model.acquisition.FilterSetExcitationFilterLink as well.
      • addFilterSetExcitationFilterLinkSet

        public void addFilterSetExcitationFilterLinkSet​(java.util.Collection<FilterSetExcitationFilterLink> targets)
        use like addFilterSetExcitationFilterLink.
      • removeFilterSetExcitationFilterLink

        public void removeFilterSetExcitationFilterLink​(FilterSetExcitationFilterLink target)
        removes a single element from this set and makes the inverse call on ome.model.acquisition.FilterSetExcitationFilterLink
      • removeFilterSetExcitationFilterLinkSet

        public void removeFilterSetExcitationFilterLinkSet​(java.util.Collection<FilterSetExcitationFilterLink> targets)
        use like removeFilterSetExcitationFilterLink
      • linkExcitationFilter

        public FilterSetExcitationFilterLink linkExcitationFilter​(Filter addition)
        Adds a ome.model.acquisition.FilterSetExcitationFilterLink to excitationFilterLink . This entails changing our excitationFilterLink Set, creating a new ome.model.acquisition.FilterSetExcitationFilterLink and calling linkExcitationFilter on the ome.model.acquisition.Filter.
      • addFilterSetExcitationFilterLink

        public void addFilterSetExcitationFilterLink​(FilterSetExcitationFilterLink link,
                                                     boolean bothSides)
        Adds a ome.model.acquisition.FilterSetExcitationFilterLink to excitationFilterLink, allowing for recursion -- whether or not addFilterSetExcitationFilterLink will be called on the addition if it is loaded
      • linkedExcitationFilterIterator

        public java.util.Iterator<Filter> linkedExcitationFilterIterator()
        provides an iterator over the parent values of the excitationFilterLink. Like with most Collection iterators, modifications to the underlying collection while iterating will result in an ConcurrentModificationException. Use linkedExcitationFilterList() instead.
      • findFilterSetExcitationFilterLink

        public java.util.Set<FilterSetExcitationFilterLink> findFilterSetExcitationFilterLink​(Filter target)
        find all ome.model.acquisition.FilterSetExcitationFilterLink which have the argument as their child.
      • linkedExcitationFilterList

        public java.util.List<Filter> linkedExcitationFilterList()
        produces a List-copy of the underlying collection. Unlike, linkedExcitationFilterIterator(), while using the returned List, modifications can be made to the underlying collection without throwing ConcurrentModificationException.
      • eachLinkedExcitationFilter

        public <E> java.util.List<E> eachLinkedExcitationFilter​(CBlock<E> block)
        takes a CBlock and calls the block once for each ome.model.acquisition.Filter while collecting the results. If block == null, then the iterator values themselves are collected.
      • unlinkExcitationFilter

        public void unlinkExcitationFilter​(Filter removal)
        unlinks all ome.model.acquisition.Filter instances from this instance.
      • removeFilterSetExcitationFilterLink

        public void removeFilterSetExcitationFilterLink​(FilterSetExcitationFilterLink link,
                                                        boolean bothSides)
        removes the given FilterSetExcitationFilterLink from excitationFilterLink, allowing for recursion -- whether or not the removal will call unlinkFilterSet again if loaded.
      • clearExcitationFilterLinks

        public void clearExcitationFilterLinks()
        clears the set.
      • setExcitationFilterLinkCountPerOwner

        protected void setExcitationFilterLinkCountPerOwner​(java.util.Map<java.lang.Long,​java.lang.Long> map)
      • getExcitationFilterLinkCountPerOwner

        public java.util.Map<java.lang.Long,​java.lang.Long> getExcitationFilterLinkCountPerOwner()
        If fetched, returns the count(*) of ome.model.acquisition.FilterSetExcitationFilterLink that a user has. If unfetched, returns null. No entries in the collection should be null.
      • getDichroic

        public Dichroic getDichroic()
        Many-to-one field ome.model.acquisition.FilterSet.dichroic (ome.model.acquisition.Dichroic)
      • setDichroic

        public void setDichroic​(Dichroic dichroic)
      • getEmissionFilterLink

        protected java.util.Set<FilterSetEmissionFilterLink> getEmissionFilterLink()
        returns emissionFilterLink . You should not modify this collection unless you know what you are doing. Use the iterate method instead. one-to-many Set ome.model.acquisition.FilterSet.emissionFilterLink (ome.model.acquisition.FilterSetEmissionFilterLink)
      • setEmissionFilterLink

        protected void setEmissionFilterLink​(java.util.Set<FilterSetEmissionFilterLink> emissionFilterLink)
        setter for emissionFilterLink should be avoided. Does not fulfill normal semantics.
      • sizeOfEmissionFilterLink

        public int sizeOfEmissionFilterLink()
        returns the size of emissionFilterLink. If less than zero, the Set was null.
      • iterateEmissionFilterLink

        public java.util.Iterator<FilterSetEmissionFilterLink> iterateEmissionFilterLink()
        should be used rather than accessing the emissionFilterLink set directly. This method will never return null, but rather will return an instance of EmptyIterator. To test for a null collection, see of sizeOfEmissionFilterLink() is less than zero.
      • unmodifiableEmissionFilterLink

        public java.util.Collection<FilterSetEmissionFilterLink> unmodifiableEmissionFilterLink()
        Returns an unmodifiable collection-view
      • collectEmissionFilterLink

        public <E> java.util.List<E> collectEmissionFilterLink​(CBlock<E> block)
        takes a CBlock and calls the block once for each ome.model.acquisition.FilterSetEmissionFilterLink while collecting the results. If block == null, then the iterator values themselves are collected. This method uses iterateEmissionFilterLink() internally and so will return a value even if the underlying collection is null.
      • addFilterSetEmissionFilterLink

        public void addFilterSetEmissionFilterLink​(FilterSetEmissionFilterLink target)
        use instead of setEmissionFilterLink . Makes the necessary call on ome.model.acquisition.FilterSetEmissionFilterLink as well.
      • addFilterSetEmissionFilterLinkSet

        public void addFilterSetEmissionFilterLinkSet​(java.util.Collection<FilterSetEmissionFilterLink> targets)
        use like addFilterSetEmissionFilterLink.
      • removeFilterSetEmissionFilterLink

        public void removeFilterSetEmissionFilterLink​(FilterSetEmissionFilterLink target)
        removes a single element from this set and makes the inverse call on ome.model.acquisition.FilterSetEmissionFilterLink
      • removeFilterSetEmissionFilterLinkSet

        public void removeFilterSetEmissionFilterLinkSet​(java.util.Collection<FilterSetEmissionFilterLink> targets)
        use like removeFilterSetEmissionFilterLink
      • linkEmissionFilter

        public FilterSetEmissionFilterLink linkEmissionFilter​(Filter addition)
        Adds a ome.model.acquisition.FilterSetEmissionFilterLink to emissionFilterLink . This entails changing our emissionFilterLink Set, creating a new ome.model.acquisition.FilterSetEmissionFilterLink and calling linkEmissionFilter on the ome.model.acquisition.Filter.
      • addFilterSetEmissionFilterLink

        public void addFilterSetEmissionFilterLink​(FilterSetEmissionFilterLink link,
                                                   boolean bothSides)
        Adds a ome.model.acquisition.FilterSetEmissionFilterLink to emissionFilterLink, allowing for recursion -- whether or not addFilterSetEmissionFilterLink will be called on the addition if it is loaded
      • linkedEmissionFilterIterator

        public java.util.Iterator<Filter> linkedEmissionFilterIterator()
        provides an iterator over the parent values of the emissionFilterLink. Like with most Collection iterators, modifications to the underlying collection while iterating will result in an ConcurrentModificationException. Use linkedEmissionFilterList() instead.
      • findFilterSetEmissionFilterLink

        public java.util.Set<FilterSetEmissionFilterLink> findFilterSetEmissionFilterLink​(Filter target)
        find all ome.model.acquisition.FilterSetEmissionFilterLink which have the argument as their child.
      • linkedEmissionFilterList

        public java.util.List<Filter> linkedEmissionFilterList()
        produces a List-copy of the underlying collection. Unlike, linkedEmissionFilterIterator(), while using the returned List, modifications can be made to the underlying collection without throwing ConcurrentModificationException.
      • eachLinkedEmissionFilter

        public <E> java.util.List<E> eachLinkedEmissionFilter​(CBlock<E> block)
        takes a CBlock and calls the block once for each ome.model.acquisition.Filter while collecting the results. If block == null, then the iterator values themselves are collected.
      • unlinkEmissionFilter

        public void unlinkEmissionFilter​(Filter removal)
        unlinks all ome.model.acquisition.Filter instances from this instance.
      • removeFilterSetEmissionFilterLink

        public void removeFilterSetEmissionFilterLink​(FilterSetEmissionFilterLink link,
                                                      boolean bothSides)
        removes the given FilterSetEmissionFilterLink from emissionFilterLink, allowing for recursion -- whether or not the removal will call unlinkFilterSet again if loaded.
      • clearEmissionFilterLinks

        public void clearEmissionFilterLinks()
        clears the set.
      • setEmissionFilterLinkCountPerOwner

        protected void setEmissionFilterLinkCountPerOwner​(java.util.Map<java.lang.Long,​java.lang.Long> map)
      • getEmissionFilterLinkCountPerOwner

        public java.util.Map<java.lang.Long,​java.lang.Long> getEmissionFilterLinkCountPerOwner()
        If fetched, returns the count(*) of ome.model.acquisition.FilterSetEmissionFilterLink that a user has. If unfetched, returns null. No entries in the collection should be null.
      • getDetails

        public Details getDetails()
        The details of this object correspond to low-level system information. Owner, permissions, Details is always guaranteed to be non-null, unless the user actively nulls it. Every entity also contains a Detail reference, which doesn't refer to a separate table but rather to a collection of fields collected into a Hibernate "component" which is embedded in the object. HQL queries which refer to the Details component cannot directly fetch the entity like this: select o from Object join fetch o.details but rather each field of the Details instance must be explicitly joined: select o from Object join fetch o.details.owner It should also be noted that not all types have all the fields which are present on Details. For example, select e from Experimenter e join fetch e.details.owner will fail. Experimenter has no owner, for obvious reasons. Note: subclasses of this class will return a subclass of the Details type.
        Specified by:
        getDetails in interface IObject
      • setDetails

        protected void setDetails​(Details details)
      • isValid

        public boolean isValid()
        Description copied from interface: IObject
        calls the class-specific validator for this instance and returns the value from Validation.isValid()
        Specified by:
        isValid in interface IObject
      • validate

        public Validation validate()
        Description copied from interface: IObject
        calls the class-specific validator for this instance and returns the Validation object.
        Specified by:
        validate in interface IObject
        Returns:
        Validation collecting parameter.
      • newInstance

        public FilterSet newInstance()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • fields

        public java.util.Set<java.lang.String> fields()
        Description copied from interface: IObject
        returns a Set of field names that belong to this class
        Specified by:
        fields in interface IObject
      • retrieve

        public java.lang.Object retrieve​(java.lang.String field)
        Description copied from interface: IObject
        retrieves a value from this instance. Values for field which match a field of this instance will be delegated to the accessors. Otherwise, values will be retrieved from a lazy-loaded map filled by calls to IObject.putAt(String, Object)
        Specified by:
        retrieve in interface IObject
      • putAt

        public void putAt​(java.lang.String field,
                          java.lang.Object value)
        Description copied from interface: IObject
        stores a value in this instance. Values for field which match a field of this instance will be delegated to the accessors. Otherwise, values will be stored in a lazy-loaded map.
        Specified by:
        putAt in interface IObject
        Parameters:
        field - Field name
        value - Any object to be stored.
      • isLoaded

        public boolean isLoaded()
        Description copied from interface: IObject
        transient field (not stored in the DB) which specifies whether this object has been loaded from the DB or is only a wrapper around the ID.
        Specified by:
        isLoaded in interface IObject
      • errorIfUnloaded

        protected void errorIfUnloaded()
      • unload

        public void unload()
        Description copied from interface: IObject
        set the loaded field to false, and set all non-ID fields to null. Subsequent calls to all accessors other than getId/setId will throw an ApiUsageException
        Specified by:
        unload in interface IObject
      • getGraphHolder

        public final GraphHolder getGraphHolder()
        Description copied from interface: IObject
        retrieves the GraphHolder for this entity. If the GraphHolder has not been actively set, a new one will be instatiated.
        Specified by:
        getGraphHolder in interface IObject
        Returns:
        Non-null GraphHolder
      • throwNullCollectionException

        protected void throwNullCollectionException​(java.lang.String propertyName)