/*
* <copyright>
*
* Copyright 1997-2004 BBNT Solutions, LLC
* under sponsorship of the Defense Advanced Research Projects
* Agency (DARPA).
*
* You can redistribute this software and/or modify it under the
* terms of the Cougaar Open Source License as published on the
* Cougaar Open Source Website (www.cougaar.org).
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* </copyright>
*/
/* @generated Thu Sep 27 15:21:47 EDT 2007 from /u01/builds/cougaar/B12_4/B12_4/070927151721/src/glm/src/org/cougaar/glm/ldm/asset/alpprops.def - DO NOT HAND EDIT */
/** Primary client interface for RepairablePG.
* @see NewRepairablePG
* @see RepairablePGImpl
**/
package org.cougaar.glm.ldm.asset;
import org.cougaar.planning.ldm.measure.*;
import org.cougaar.planning.ldm.asset.*;
import org.cougaar.planning.ldm.plan.*;
import java.util.*;
import org.cougaar.glm.ldm.plan.*;
import org.cougaar.glm.ldm.oplan.*;
import org.cougaar.glm.ldm.policy.*;
import org.cougaar.core.mts.MessageAddress;
import org.cougaar.glm.execution.common.InventoryReport;
public interface RepairablePG extends PropertyGroup, org.cougaar.planning.ldm.dq.HasDataQuality {
double getFailRate();
String getAcquisitionAdviceCode();
String getSupplyStatusCode();
String getItemCategoryCode();
// introspection and construction
/** the method of factoryClass that creates this type **/
String factoryMethod = "newRepairablePG";
/** the (mutable) class type returned by factoryMethod **/
String mutableClass = "org.cougaar.glm.ldm.asset.NewRepairablePG";
/** the factory class **/
Class factoryClass = org.cougaar.glm.ldm.asset.PropertyGroupFactory.class;
/** the (immutable) class type returned by domain factory **/
Class primaryClass = org.cougaar.glm.ldm.asset.RepairablePG.class;
String assetSetter = "setRepairablePG";
String assetGetter = "getRepairablePG";
/** The Null instance for indicating that the PG definitely has no value **/
RepairablePG nullPG = new Null_RepairablePG();
/** Null_PG implementation for RepairablePG **/
final class Null_RepairablePG
implements RepairablePG, Null_PG
{
public double getFailRate() { throw new UndefinedValueException(); }
public String getAcquisitionAdviceCode() { throw new UndefinedValueException(); }
public String getSupplyStatusCode() { throw new UndefinedValueException(); }
public String getItemCategoryCode() { throw new UndefinedValueException(); }
public boolean equals(Object object) { throw new UndefinedValueException(); }
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
public NewPropertyGroup unlock(Object key) { return null; }
public PropertyGroup lock(Object key) { return null; }
public PropertyGroup lock() { return null; }
public PropertyGroup copy() { return null; }
public Class getPrimaryClass(){return primaryClass;}
public String getAssetGetMethod() {return assetGetter;}
public String getAssetSetMethod() {return assetSetter;}
public Class getIntrospectionClass() {
return RepairablePGImpl.class;
}
public boolean hasDataQuality() { return false; }
public org.cougaar.planning.ldm.dq.DataQuality getDataQuality() { return null; }
}
/** Future PG implementation for RepairablePG **/
final class Future
implements RepairablePG, Future_PG
{
public double getFailRate() {
waitForFinalize();
return _real.getFailRate();
}
public String getAcquisitionAdviceCode() {
waitForFinalize();
return _real.getAcquisitionAdviceCode();
}
public String getSupplyStatusCode() {
waitForFinalize();
return _real.getSupplyStatusCode();
}
public String getItemCategoryCode() {
waitForFinalize();
return _real.getItemCategoryCode();
}
public boolean equals(Object object) {
waitForFinalize();
return _real.equals(object);
}
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
public NewPropertyGroup unlock(Object key) { return null; }
public PropertyGroup lock(Object key) { return null; }
public PropertyGroup lock() { return null; }
public PropertyGroup copy() { return null; }
public Class getPrimaryClass(){return primaryClass;}
public String getAssetGetMethod() {return assetGetter;}
public String getAssetSetMethod() {return assetSetter;}
public Class getIntrospectionClass() {
return RepairablePGImpl.class;
}
public synchronized boolean hasDataQuality() {
return (_real!=null) && _real.hasDataQuality();
}
public synchronized org.cougaar.planning.ldm.dq.DataQuality getDataQuality() {
return (_real==null)?null:(_real.getDataQuality());
}
// Finalization support
private RepairablePG _real = null;
public synchronized void finalize(PropertyGroup real) {
if (real instanceof RepairablePG) {
_real=(RepairablePG) real;
notifyAll();
} else {
throw new IllegalArgumentException("Finalization with wrong class: "+real);
}
}
private synchronized void waitForFinalize() {
while (_real == null) {
try {
wait();
} catch (InterruptedException _ie) {
// We should really let waitForFinalize throw InterruptedException
Thread.interrupted();
}
}
}
}
}
|