1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package org.apache.commons.betwixt.schema;
19
20 import java.beans.IntrospectionException;
21
22 import org.apache.commons.betwixt.ElementDescriptor;
23
24 /**
25 * @author <a href='http://commons.apache.org/'>Apache Commons Team</a>
26 * @version $Revision: 561314 $
27 */
28 public class ElementReference extends GlobalElement {
29
30 protected String maxOccurs = "1";
31
32 protected int minOccurs = 0;
33
34 public ElementReference(String string, GlobalComplexType complexType) {
35
36 super(string, complexType);
37 }
38
39 public ElementReference(String name, String type) {
40 super(name, type);
41 }
42
43 public ElementReference(TranscriptionConfiguration configuration, ElementDescriptor elementDescriptor, Schema schema) throws IntrospectionException {
44 setName(elementDescriptor.getLocalName());
45 if (elementDescriptor.isHollow()) {
46 setComplexType( schema.addGlobalComplexType( configuration, elementDescriptor ));
47 if (elementDescriptor.isCollective()) {
48 maxOccurs = "unbounded";
49 }
50 } else {
51
52 setType("xsd:string");
53 }
54 }
55
56 public int getMinOccurs() {
57 return minOccurs;
58 }
59
60 public void setMinOccurs(int minOccurs) {
61 this.minOccurs = minOccurs;
62 }
63
64 public String getMaxOccurs() {
65 return maxOccurs;
66 }
67
68 public void setMaxOccurs(String maxOccurs) {
69 this.maxOccurs = maxOccurs;
70 }
71
72 }