com.sun.org.apache.xerces.internal.impl.xs.identity.IdentityConstraint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.servicemix.bundles.jaxp-ri
Show all versions of org.apache.servicemix.bundles.jaxp-ri
This OSGi bundle wraps ${pkgArtifactId} ${pkgVersion} jar file.
The newest version!
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License"). You * may not use this file except in compliance with the License. You can * obtain a copy of the License at * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html * or packager/legal/LICENSE.txt. See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each * file and include the License file at packager/legal/LICENSE.txt. * * GPL Classpath Exception: * Oracle designates this particular file as subject to the "Classpath" * exception as provided by Oracle in the GPL Version 2 section of the License * file that accompanied this code. * * Modifications: * If applicable, add the following below the License Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyright [year] [name of copyright owner]" * * Contributor(s): * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license." If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above. However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. * * * This file incorporates work covered by the following copyright and * permission notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.sun.org.apache.xerces.internal.impl.xs.identity; import com.sun.org.apache.xerces.internal.xs.XSIDCDefinition; import com.sun.org.apache.xerces.internal.xs.StringList; import com.sun.org.apache.xerces.internal.xs.XSNamespaceItem; import com.sun.org.apache.xerces.internal.xs.XSObjectList; import com.sun.org.apache.xerces.internal.xs.XSConstants; import com.sun.org.apache.xerces.internal.impl.xs.util.StringListImpl; import com.sun.org.apache.xerces.internal.impl.xs.util.XSObjectListImpl; import com.sun.org.apache.xerces.internal.impl.xs.XSAnnotationImpl; /** * Base class of Schema identity constraint. * * @xerces.internal * * @author Andy Clark, IBM * @version $Id: IdentityConstraint.java,v 1.6 2010-11-01 04:39:57 joehw Exp $ */ public abstract class IdentityConstraint implements XSIDCDefinition { // // Data // /** type */ protected short type; /** target namespace */ protected String fNamespace; /** Identity constraint name. */ protected String fIdentityConstraintName; /** name of owning element */ protected String fElementName; /** Selector. */ protected Selector fSelector; /** Field count. */ protected int fFieldCount; /** Fields. */ protected Field[] fFields; // optional annotations protected XSAnnotationImpl [] fAnnotations = null; // number of annotations in this identity constraint protected int fNumAnnotations; // // Constructors // /** Default constructor. */ protected IdentityConstraint(String namespace, String identityConstraintName, String elemName) { fNamespace = namespace; fIdentityConstraintName = identityConstraintName; fElementName = elemName; } //
of this(String,String) // // Public methods // /** Returns the identity constraint name. */ public String getIdentityConstraintName() { return fIdentityConstraintName; } // getIdentityConstraintName():String /** Sets the selector. */ public void setSelector(Selector selector) { fSelector = selector; } // setSelector(Selector) /** Returns the selector. */ public Selector getSelector() { return fSelector; } // getSelector():Selector /** Adds a field. */ public void addField(Field field) { if (fFields == null) fFields = new Field[4]; else if (fFieldCount == fFields.length) fFields = resize(fFields, fFieldCount*2); fFields[fFieldCount++] = field; } // addField(Field) /** Returns the field count. */ public int getFieldCount() { return fFieldCount; } // getFieldCount():int /** Returns the field at the specified index. */ public Field getFieldAt(int index) { return fFields[index]; } // getFieldAt(int):Field // get the name of the owning element public String getElementName () { return fElementName; } // getElementName(): String // // Object methods // /** Returns a string representation of this object. */ public String toString() { String s = super.toString(); int index1 = s.lastIndexOf('$'); if (index1 != -1) { return s.substring(index1 + 1); } int index2 = s.lastIndexOf('.'); if (index2 != -1) { return s.substring(index2 + 1); } return s; } // toString():String // equals: returns true if and only if the String // representations of all members of both objects (except for // the elenemtName field) are equal. public boolean equals(IdentityConstraint id) { boolean areEqual = fIdentityConstraintName.equals(id.fIdentityConstraintName); if(!areEqual) return false; areEqual = fSelector.toString().equals(id.fSelector.toString()); if(!areEqual) return false; areEqual = (fFieldCount == id.fFieldCount); if(!areEqual) return false; for(int i=0; i name XSObject
depending on the *XSObject
type. */ public String getName() { return fIdentityConstraintName; } /** * The namespace URI of this node, ornull
if it is * unspecified. defines how a namespace URI is attached to schema * components. */ public String getNamespace() { return fNamespace; } /** * {identity-constraint category} One of key, keyref or unique. */ public short getCategory() { return type; } /** * {selector} A restricted XPath ([XPath]) expression */ public String getSelectorStr() { return (fSelector != null) ? fSelector.toString() : null; } /** * {fields} A non-empty list of restricted XPath ([XPath]) expressions. */ public StringList getFieldStrs() { String[] strs = new String[fFieldCount]; for (int i = 0; i < fFieldCount; i++) strs[i] = fFields[i].toString(); return new StringListImpl(strs, fFieldCount); } /** * {referenced key} Required if {identity-constraint category} is keyref, * forbidden otherwise. An identity-constraint definition with * {identity-constraint category} equal to key or unique. */ public XSIDCDefinition getRefKey() { return null; } /** * Optional. Annotation. */ public XSObjectList getAnnotations() { return new XSObjectListImpl(fAnnotations, fNumAnnotations); } /** * @see com.sun.org.apache.xerces.internal.xs.XSObject#getNamespaceItem() */ public XSNamespaceItem getNamespaceItem() { // REVISIT: implement return null; } public void addAnnotation(XSAnnotationImpl annotation) { if(annotation == null) return; if(fAnnotations == null) { fAnnotations = new XSAnnotationImpl[2]; } else if(fNumAnnotations == fAnnotations.length) { XSAnnotationImpl[] newArray = new XSAnnotationImpl[fNumAnnotations << 1]; System.arraycopy(fAnnotations, 0, newArray, 0, fNumAnnotations); fAnnotations = newArray; } fAnnotations[fNumAnnotations++] = annotation; } } // class IdentityConstraint