| /** |
| * 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 org.apache.openejb.jee; |
| |
| import javax.xml.bind.annotation.XmlAccessorType; |
| import javax.xml.bind.annotation.XmlAccessType; |
| import javax.xml.bind.annotation.XmlType; |
| import javax.xml.bind.annotation.XmlElement; |
| import javax.xml.bind.annotation.XmlAttribute; |
| import javax.xml.bind.annotation.XmlID; |
| import javax.xml.bind.annotation.XmlTransient; |
| import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; |
| import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; |
| import java.util.List; |
| import java.util.ArrayList; |
| |
| //TODO not part of schema? replaced by concurrent-method? |
| @XmlAccessorType(XmlAccessType.FIELD) |
| @XmlType(name = "container-concurrencyType", propOrder = { |
| "descriptions", |
| //replaced by a NamedMethod which doesn't need the ejb-name because it's attached to an ejb already. |
| "method", |
| "lock" |
| }) |
| public class ContainerConcurrency implements AttributeBinding<ConcurrentLockType> { |
| |
| @XmlTransient |
| protected TextMap description = new TextMap(); |
| @XmlElement(required = true) |
| protected List<Method> method; |
| @XmlElement(name = "concurrency-attribute", required = true) |
| protected ConcurrentLockType lock; |
| @XmlTransient |
| protected Timeout accessTimeout; |
| @XmlAttribute |
| @XmlJavaTypeAdapter(CollapsedStringAdapter.class) |
| @XmlID |
| protected String id; |
| |
| |
| @XmlElement(name = "description", required = true) |
| public Text[] getDescriptions() { |
| return description.toArray(); |
| } |
| |
| public ContainerConcurrency() { |
| } |
| |
| public ContainerConcurrency(final ConcurrentLockType lock, final String className, final String ejbName, final String methodName) { |
| this(lock, new Method(ejbName, className, methodName)); |
| } |
| |
| public ContainerConcurrency(final ConcurrentLockType lock, final String ejbName, final java.lang.reflect.Method method) { |
| this(lock, new Method(ejbName, method)); |
| } |
| |
| public ContainerConcurrency(final ConcurrentLockType lock, final Method method) { |
| this.lock = lock; |
| getMethod().add(method); |
| } |
| |
| public void setDescriptions(final Text[] text) { |
| description.set(text); |
| } |
| |
| public String getDescription() { |
| return description.get(); |
| } |
| |
| public List<Method> getMethod() { |
| if (method == null) { |
| method = new ArrayList<Method>(); |
| } |
| return this.method; |
| } |
| |
| public ConcurrentLockType getAttribute() { |
| return lock; |
| } |
| |
| public ConcurrentLockType getLock() { |
| return lock; |
| } |
| |
| public void setLock(final ConcurrentLockType value) { |
| this.lock = value; |
| } |
| |
| public Timeout getAccessTimeout() { |
| return accessTimeout; |
| } |
| |
| public void setAccessTimeout(final Timeout value) { |
| this.accessTimeout = value; |
| } |
| |
| public String getId() { |
| return id; |
| } |
| |
| public void setId(final String value) { |
| this.id = value; |
| } |
| } |