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

com.phloc.schematron.pure.model.PSRichGroup Maven / Gradle / Ivy

There is a newer version: 2.7.1
Show newest version
/**
 * Copyright (C) 2014 phloc systems
 * http://www.phloc.com
 * office[at]phloc[dot]com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.phloc.schematron.pure.model;

import java.io.Serializable;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.NotThreadSafe;

import com.phloc.commons.ICloneable;
import com.phloc.commons.annotations.Nonempty;
import com.phloc.commons.id.IHasID;
import com.phloc.commons.lang.EnumHelper;
import com.phloc.commons.microdom.IMicroElement;
import com.phloc.commons.string.ToStringGenerator;
import com.phloc.schematron.CSchematronXML;

/**
 * A single "rich" group
 * 
 * @author Philip Helger
 */
@NotThreadSafe
public class PSRichGroup implements ICloneable , Serializable
{
  public static enum ESpace implements IHasID 
  {
    PRESERVE ("preserve"),
    DEFAULT ("default");

    private final String m_sID;

    private ESpace (@Nonnull @Nonempty final String sID)
    {
      m_sID = sID;
    }

    @Nonnull
    @Nonempty
    public String getID ()
    {
      return m_sID;
    }

    @Nullable
    public static ESpace getFromIDOrNull (@Nullable final String sID)
    {
      return EnumHelper.getFromIDOrNull (ESpace.class, sID);
    }
  }

  private String m_sIcon;
  private String m_sSee;
  private String m_sFPI;
  private String m_sXmlLang;
  private ESpace m_eXmlSpace;

  public PSRichGroup ()
  {}

  public void setIcon (@Nullable final String sIcon)
  {
    m_sIcon = sIcon;
  }

  /**
   * The location of a graphics file containing some visible representation of
   * the severity, significance or other grouping of the associated element.
* An implementation is not required to make use of this attribute. * * @return The icon value */ @Nullable public String getIcon () { return m_sIcon; } public void setSee (@Nullable final String sSee) { m_sSee = sSee; } /** * The URI of external information of interest to maintainers and users of the * schema.
* An implementation is not required to make use of this attribute. * * @return The see value */ @Nullable public String getSee () { return m_sSee; } public void setFPI (@Nullable final String sFPI) { m_sFPI = sFPI; } /** * A formal public identifier for the schema, phase or other element.
* An implementation is not required to make use of this attribute. * * @return The FPI value */ @Nullable public String getFPI () { return m_sFPI; } public void setXmlLang (@Nullable final String sXmlLang) { m_sXmlLang = sXmlLang; } @Nullable public String getXmlLang () { return m_sXmlLang; } public void setXmlSpace (@Nullable final ESpace eXmlSpace) { m_eXmlSpace = eXmlSpace; } @Nullable public ESpace getXmlSpace () { return m_eXmlSpace; } public static boolean isRichAttribute (@Nullable final String sAttrName) { return CSchematronXML.ATTR_ICON.equals (sAttrName) || CSchematronXML.ATTR_SEE.equals (sAttrName) || CSchematronXML.ATTR_FPI.equals (sAttrName) || CSchematronXML.ATTR_XML_LANG.equals (sAttrName) || CSchematronXML.ATTR_XML_SPACE.equals (sAttrName); } public void fillMicroElement (@Nonnull final IMicroElement aElement) { aElement.setAttribute (CSchematronXML.ATTR_ICON, m_sIcon); aElement.setAttribute (CSchematronXML.ATTR_SEE, m_sSee); aElement.setAttribute (CSchematronXML.ATTR_FPI, m_sFPI); aElement.setAttribute (CSchematronXML.ATTR_XML_LANG, m_sXmlLang); if (m_eXmlSpace != null) aElement.setAttribute (CSchematronXML.ATTR_XML_SPACE, m_eXmlSpace.getID ()); } @Nonnull public PSRichGroup getClone () { final PSRichGroup ret = new PSRichGroup (); ret.setIcon (m_sIcon); ret.setSee (m_sSee); ret.setFPI (m_sFPI); ret.setXmlLang (m_sXmlLang); ret.setXmlSpace (m_eXmlSpace); return ret; } @Override public String toString () { return new ToStringGenerator (this).appendIfNotNull ("icon", m_sIcon) .appendIfNotNull ("see", m_sSee) .appendIfNotNull ("fpi", m_sFPI) .appendIfNotNull ("xml:lang", m_sXmlLang) .appendIfNotNull ("xml:space", m_eXmlSpace) .toString (); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy