package org.archstudio.xarchadt.variability.ui;
import org.archstudio.myx.fw.IMyxName;
import org.archstudio.myx.fw.MyxRegistry;
import org.archstudio.myx.fw.MyxUtils;
/*
* DO NOT EDIT THIS CLASS, it is automatically generated. ANY MODIFICATIONS WILL BE OVERWRITTEN. To modify, update the
* "Variability Myx Component" MyxGen extension in the org.archstudio.xarchadt.variability.ui plugin.
*/
/**
* Abstract Myx brick: Variability Myx Component
*
* @generated
*/
public abstract class VariabilityMyxComponentStub extends org.archstudio.myx.fw.AbstractMyxSimpleBrick
implements org.archstudio.myx.fw.IMyxDynamicBrick {
/**
* The registry of objects for this brick.
*
* @generated
*/
protected final MyxRegistry myxRegistry = MyxRegistry.getSharedInstance();
/**
* Register this brick instance with the registry.
*
* @generated
*/
@Override
public void begin() {
super.begin();
myxRegistry.registerBrick(this);
}
/**
* Unregister this brick instance with the registry.
*
* @generated
*/
@Override
public void end() {
myxRegistry.unregisterBrick(this);
super.end();
}
/**
* Myx name for the <code>xarch</code> interface.
*
* @generated
*/
public static final IMyxName OUT_XARCH = MyxUtils.createName("xarch");
/**
* Service object for the xarch interface.
*
* @see #OUT_XARCH
* @generated
*/
protected org.archstudio.xarchadt.variability.IXArchADTVariability xarch = null;
/**
* Returns the service object(s) for the xarch interface.
*
* @see #OUT_XARCH
* @generated
*/
public org.archstudio.xarchadt.variability.IXArchADTVariability getXarch() {
if (xarch == null) {
throw new NullPointerException("Uninitialized service object: xarch");
}
return xarch;
}
/**
* Myx name for the <code>modelEvents</code> interface.
*
* @generated
*/
public static final IMyxName IN_MODEL_EVENTS = MyxUtils.createName("modelEvents");
/**
* Service object proxy for the modelEvents interface. Calls to this proxy object are automatically delegated to all
* service objects in the MyxRegistry of type org.archstudio.xarchadt.IXArchADTModelListener.
*
* @see #IN_MODEL_EVENTS
* @generated
*/
protected final org.archstudio.xarchadt.IXArchADTModelListener modelEventsProxy =
(org.archstudio.xarchadt.IXArchADTModelListener) java.lang.reflect.Proxy.newProxyInstance(
org.archstudio.xarchadt.IXArchADTModelListener.class.getClassLoader(),
new Class[] { org.archstudio.xarchadt.IXArchADTModelListener.class },
new java.lang.reflect.InvocationHandler() {
@Override
public Object invoke(Object proxy, java.lang.reflect.Method method, Object[] args)
throws Throwable {
for (org.archstudio.xarchadt.IXArchADTModelListener o : myxRegistry.getObjects(
VariabilityMyxComponentStub.this,
org.archstudio.xarchadt.IXArchADTModelListener.class)) {
try {
method.invoke(o, args);
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
});
/**
* Returns the service object(s) for the modelEvents interface.
*
* @see #IN_MODEL_EVENTS
* @generated
*/
public org.archstudio.xarchadt.IXArchADTModelListener getModelEvents() {
return modelEventsProxy;
}
/**
* Myx name for the <code>fileEvents</code> interface.
*
* @generated
*/
public static final IMyxName IN_FILE_EVENTS = MyxUtils.createName("fileEvents");
/**
* Service object proxy for the fileEvents interface. Calls to this proxy object are automatically delegated to all
* service objects in the MyxRegistry of type org.archstudio.xarchadt.IXArchADTFileListener.
*
* @see #IN_FILE_EVENTS
* @generated
*/
protected final org.archstudio.xarchadt.IXArchADTFileListener fileEventsProxy =
(org.archstudio.xarchadt.IXArchADTFileListener) java.lang.reflect.Proxy.newProxyInstance(
org.archstudio.xarchadt.IXArchADTFileListener.class.getClassLoader(),
new Class[] { org.archstudio.xarchadt.IXArchADTFileListener.class },
new java.lang.reflect.InvocationHandler() {
@Override
public Object invoke(Object proxy, java.lang.reflect.Method method, Object[] args)
throws Throwable {
for (org.archstudio.xarchadt.IXArchADTFileListener o : myxRegistry.getObjects(
VariabilityMyxComponentStub.this,
org.archstudio.xarchadt.IXArchADTFileListener.class)) {
try {
method.invoke(o, args);
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
});
/**
* Returns the service object(s) for the fileEvents interface.
*
* @see #IN_FILE_EVENTS
* @generated
*/
public org.archstudio.xarchadt.IXArchADTFileListener getFileEvents() {
return fileEventsProxy;
}
/**
* Myx name for the <code>variabilityEvents</code> interface.
*
* @generated
*/
public static final IMyxName IN_VARIABILITY_EVENTS = MyxUtils.createName("variabilityEvents");
/**
* Service object proxy for the variabilityEvents interface. Calls to this proxy object are automatically delegated
* to all service objects in the MyxRegistry of type
* org.archstudio.xarchadt.variability.IXArchADTVariabilityListener.
*
* @see #IN_VARIABILITY_EVENTS
* @generated
*/
protected final org.archstudio.xarchadt.variability.IXArchADTVariabilityListener variabilityEventsProxy =
(org.archstudio.xarchadt.variability.IXArchADTVariabilityListener) java.lang.reflect.Proxy.newProxyInstance(
org.archstudio.xarchadt.variability.IXArchADTVariabilityListener.class.getClassLoader(),
new Class[] { org.archstudio.xarchadt.variability.IXArchADTVariabilityListener.class },
new java.lang.reflect.InvocationHandler() {
@Override
public Object invoke(Object proxy, java.lang.reflect.Method method, Object[] args)
throws Throwable {
for (org.archstudio.xarchadt.variability.IXArchADTVariabilityListener o : myxRegistry
.getObjects(VariabilityMyxComponentStub.this,
org.archstudio.xarchadt.variability.IXArchADTVariabilityListener.class)) {
try {
method.invoke(o, args);
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
});
/**
* Returns the service object(s) for the variabilityEvents interface.
*
* @see #IN_VARIABILITY_EVENTS
* @generated
*/
public org.archstudio.xarchadt.variability.IXArchADTVariabilityListener getVariabilityEvents() {
return variabilityEventsProxy;
}
/**
* Returns service object(s) for IN interfaces.
*
* @see #IN_MODEL_EVENTS
* @see #IN_FILE_EVENTS
* @see #IN_VARIABILITY_EVENTS
* @generated
*/
@Override
public Object getServiceObject(IMyxName interfaceName) {
if (interfaceName.equals(IN_MODEL_EVENTS)) {
return modelEventsProxy;
}
if (interfaceName.equals(IN_FILE_EVENTS)) {
return fileEventsProxy;
}
if (interfaceName.equals(IN_VARIABILITY_EVENTS)) {
return variabilityEventsProxy;
}
throw new IllegalArgumentException("Unhandled interface: " + interfaceName.getName());
}
/**
* Update service objects based on connected OUT interfaces.
*
* @see #OUT_XARCH
* @generated
*/
@Override
public void interfaceConnected(IMyxName interfaceName, Object serviceObject) {
if (serviceObject == null) {
throw new NullPointerException(interfaceName.getName());
}
if (interfaceName.equals(OUT_XARCH)) {
if (xarch != null) {
throw new IllegalStateException("Only a single connection is supported on interface: xarch");
}
xarch = (org.archstudio.xarchadt.variability.IXArchADTVariability) serviceObject;
return;
}
throw new IllegalArgumentException("Unhandled interface: " + interfaceName.getName());
}
/**
* Update service objects based on disconnecting OUT interfaces.
*
* @see #OUT_XARCH
* @generated
*/
@Override
public void interfaceDisconnecting(IMyxName interfaceName, Object serviceObject) {
if (serviceObject == null) {
throw new NullPointerException(interfaceName.getName());
}
if (interfaceName.equals(OUT_XARCH)) {
if (xarch == null) {
throw new IllegalStateException("A connection was never made on interface: xarch");
}
xarch = null;
return;
}
throw new IllegalArgumentException("Unhandled interface: " + interfaceName.getName());
}
/**
* Performs no operation upon the completion of an interface disconnecting.
*
* @generated
*/
@Override
public void interfaceDisconnected(IMyxName interfaceName, Object serviceObject) {
}
}