Android Open Source - msf-spaces-sdk-android Data Model Filter






From Project

Back to project page msf-spaces-sdk-android.

License

The source code is released under:

Apache License

If you think the Android project msf-spaces-sdk-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package de.imc.mirror.sdk.android.filter;
//  w  ww .  ja v  a 2s. co  m
import org.jdom2.Element;

import de.imc.mirror.sdk.CDMData;
import de.imc.mirror.sdk.DataObject;

/**
 * Filter for data model information.
 * @author simon.schwantzer(at)im-c.de
 */
public class DataModelFilter implements de.imc.mirror.sdk.filter.DataModelFilter {
  private final String namespace;
  private final String version;
  
  /**
   * Creates a filter for the data model an object has to instantiate in an arbitrary version.
   * @param namespace Namespace of the data model.
   */
  public DataModelFilter(String namespace) {
    this(namespace, null);
  }
  
  /**
   * Creates a filter for the data model an object has to instantiate in an specific version.
   * @param namespace Namespace of the data model.
   * @param version Version of the data model.
   */
  public DataModelFilter(String namespace, String version) {
    this.namespace = namespace;
    this.version = version;
  }
  
  @Override
  public Element getFilterAsXML(String queryNamespace) {
    Element element = new Element("dataModel", queryNamespace);
    element.setAttribute("namespace", namespace);
    if (this.version != null) {
      element.setAttribute("version", version);
    }
    return element;
  }

  @Override
  public boolean isDataObjectValid(DataObject dataObject) {
    if (!namespace.equals(dataObject.getNamespaceURI())) {
      return false;
    }
    if (version != null) {
      CDMData cdmData = dataObject.getCDMData();
      if (cdmData == null) {
        return false;
      }
      try {
        String modelVersion = (String) cdmData.getClass().getMethod("modelVersion").invoke(cdmData);
        return version.equals(modelVersion);
      } catch (Exception e) {
        // CDM < 1.0
        return false;
      }
    } else {
      return true;
    }
  }

  @Override
  public String getNamespace() {
    return namespace;
  }

  @Override
  public String getVersion() {
    return version;
  }

  @Override
  public int hashCode() {
    int hc = 17;
      int hashMultiplier = 59;
      hc = hc * hashMultiplier + namespace.hashCode();
      if (version != null) {
        hc = hc * hashMultiplier + version.hashCode();
      }
    return hc;
  }

  @Override
  public boolean equals(Object obj) {
    if (obj == null || !(obj instanceof DataModelFilter)) return false;
    DataModelFilter that = (DataModelFilter) obj;
    if (!this.namespace.equals(that.namespace)) return false;
    if (this.version != null && !this.version.equals(that.version)) return false;
    if (this.version == null && that.version != null) return false;
    return true;
  }
}




Java Source Code List

de.imc.mirror.sdk.android.CDMDataBuilder.java
de.imc.mirror.sdk.android.CDMData.java
de.imc.mirror.sdk.android.CommandType.java
de.imc.mirror.sdk.android.ConnectionConfigurationBuilder.java
de.imc.mirror.sdk.android.ConnectionConfiguration.java
de.imc.mirror.sdk.android.ConnectionHandler.java
de.imc.mirror.sdk.android.DataHandler.java
de.imc.mirror.sdk.android.DataModel.java
de.imc.mirror.sdk.android.DataObjectBuilder.java
de.imc.mirror.sdk.android.DataObject.java
de.imc.mirror.sdk.android.DataWrapper.java
de.imc.mirror.sdk.android.NetworkInformation.java
de.imc.mirror.sdk.android.OrgaSpace.java
de.imc.mirror.sdk.android.PrivateSpace.java
de.imc.mirror.sdk.android.ProviderInitializer.java
de.imc.mirror.sdk.android.RequestFuture.java
de.imc.mirror.sdk.android.SpaceChannel.java
de.imc.mirror.sdk.android.SpaceConfiguration.java
de.imc.mirror.sdk.android.SpaceHandler.java
de.imc.mirror.sdk.android.SpaceMember.java
de.imc.mirror.sdk.android.Space.java
de.imc.mirror.sdk.android.SpacesProvider.java
de.imc.mirror.sdk.android.TeamSpace.java
de.imc.mirror.sdk.android.UserInfo.java
de.imc.mirror.sdk.android.cdm.CDMData_0_1.java
de.imc.mirror.sdk.android.cdm.CDMData_0_2.java
de.imc.mirror.sdk.android.cdm.CDMData_1_0.java
de.imc.mirror.sdk.android.cdm.CDMData_2_0.java
de.imc.mirror.sdk.android.cdm.CreationInfo.java
de.imc.mirror.sdk.android.cdm.Reference.java
de.imc.mirror.sdk.android.cdm.References.java
de.imc.mirror.sdk.android.cdm.Summary.java
de.imc.mirror.sdk.android.data.ChannelsTable.java
de.imc.mirror.sdk.android.data.DataDB.java
de.imc.mirror.sdk.android.data.DataTable.java
de.imc.mirror.sdk.android.data.MembersTable.java
de.imc.mirror.sdk.android.data.SendTable.java
de.imc.mirror.sdk.android.data.SpacesTable.java
de.imc.mirror.sdk.android.exceptions.InvalidBuildException.java
de.imc.mirror.sdk.android.exceptions.RequestException.java
de.imc.mirror.sdk.android.filter.AndFilter.java
de.imc.mirror.sdk.android.filter.DataModelFilter.java
de.imc.mirror.sdk.android.filter.NamespaceFilter.java
de.imc.mirror.sdk.android.filter.OrFilter.java
de.imc.mirror.sdk.android.filter.PeriodFilter.java
de.imc.mirror.sdk.android.filter.PublisherFilter.java
de.imc.mirror.sdk.android.filter.ReferencesFilter.java
de.imc.mirror.sdk.android.packet.DeleteRequestIQ.java
de.imc.mirror.sdk.android.packet.DeleteResponseIQ.java
de.imc.mirror.sdk.android.packet.PersistenceServiceDeleteProvider.java
de.imc.mirror.sdk.android.packet.PersistenceServiceQueryProvider.java
de.imc.mirror.sdk.android.packet.QueryRequestIQ.java
de.imc.mirror.sdk.android.packet.QueryResponseIQ.java
de.imc.mirror.sdk.android.utils.DatatypeConverter.java
de.imc.mirror.sdk.android.utils.DateToXsdDatetimeFormatter.java
org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl.java
org.apache.xerces.jaxp.datatype.DurationImpl.java
org.apache.xerces.jaxp.datatype.SerializedDuration.java
org.apache.xerces.jaxp.datatype.SerializedXMLGregorianCalendar.java
org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.java
org.apache.xerces.util.DatatypeMessageFormatter.java