/*
* ALMA - Atacama Large Millimiter Array
* (c) European Southern Observatory, 2004
* Copyright by ESO (in the framework of the ALMA collaboration),
* All rights reserved
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
package alma.ACSCOURSE_MOUNT.Mount6Impl;
import java.util.concurrent.ThreadFactory;
import java.util.logging.Level;
import alma.ACS.ROdouble;
import alma.ACS.ROdoubleHelper;
import alma.ACS.ROdoublePOATie;
import alma.ACS.impl.CharacteristicComponentImpl;
import alma.ACS.impl.ROdoubleImpl;
import alma.ACSCOURSE_MOUNT.Mount6J;
import alma.JavaContainerError.wrappers.AcsJContainerServicesEx;
import alma.acs.component.ComponentLifecycleException;
import alma.acs.container.ContainerServices;
import alma.acscourse.xmlbinding.myxmlconfigdata.MyNestedDataT;
import alma.acscourse.xmlbinding.myxmlconfigdata.MyXmlConfigData;
import alma.entities.commonentity.EntityT;
/**
* @author hsommer
* created Aug 16, 2004 4:22:51 PM
*/
public class Mount6Impl extends CharacteristicComponentImpl implements Mount6J
{
private ROdouble m_actAz;
// private DataAccess m_actAzDataAccess;
private ROdouble m_actEl;
private ROdouble m_cmdAz;
private ROdouble m_cmdEl;
public void initialize(ContainerServices containerServices) throws ComponentLifecycleException {
super.initialize(containerServices);
try
{
ROdoubleImpl actAzImpl = new ROdoubleImpl("actAz", this);
// m_actAzDataAccess = actAzImpl.getDataAccess();
ROdoublePOATie actAzTie = new ROdoublePOATie(actAzImpl);
m_actAz = ROdoubleHelper.narrow(this.registerProperty(actAzImpl, actAzTie));
ROdoubleImpl actElImpl = new ROdoubleImpl("actEl", this);
ROdoublePOATie actElTie = new ROdoublePOATie(actElImpl);
m_actEl = ROdoubleHelper.narrow(this.registerProperty(actElImpl, actElTie));
ROdoubleImpl cmdAzImpl = new ROdoubleImpl("cmdAz", this);
ROdoublePOATie cmdAzTie = new ROdoublePOATie(cmdAzImpl);
m_cmdAz = ROdoubleHelper.narrow(this.registerProperty(cmdAzImpl, cmdAzTie));
ROdoubleImpl cmdElImpl = new ROdoubleImpl("cmdEl", this);
ROdoublePOATie cmdElTie = new ROdoublePOATie(cmdElImpl);
m_cmdEl = ROdoubleHelper.narrow(this.registerProperty(cmdElImpl, cmdElTie));
}
catch (Throwable th)
{
throw new ComponentLifecycleException("Failed to create properties.", th);
}
}
/**
* Creates and returns binding classes which the container will automatically serialize to the following XML
* string which can be seen for example in the objexp client.
* <verbatim>
* <?xml version="1.0" encoding="ISO-8859-1"?><br>
* <ns1:MyXmlConfigData someAttribute="great attribute here!" xmlns:ns1="AlmaTest/MyXmlConfigData"><br>
* <ns1:MyXmlConfigDataEntity<br>
* entityIdEncrypted="-- id encryption not yet implemented --"<br>
* entityId="uid://X96fe17ec9c9de1be/X00000000" entityTypeName="MyXmlConfigData"/><br>
* <ns1:myStringData>string child elements looks like a string attribute
* when using binding classes...</ns1:myStringData><br>
* <ns1:childData><br>
* <ns1:someNestedData/><br>
* <ns1:someOtherData>one more silly string</ns1:someOtherData><br>
* </ns1:childData><br>
* </ns1:MyXmlConfigData><br>
* </verbatim>
*/
public MyXmlConfigData createMyXmlConfigData()
{
MyXmlConfigData xmlData = new MyXmlConfigData();
try
{
EntityT entity = new EntityT();
// the next line could be omitted if we had defined a subtype of EntityT in the XML schema,
// as it is done in the schemas of module acstestentities
entity.setEntityTypeName("MyXmlConfigData");
m_containerServices.assignUniqueEntityId(entity);
xmlData.setMyXmlConfigDataEntity(entity);
// note how we use the type-safe methods: "SomeAttribute" and "MyStringData" are names derived from the schema
xmlData.setSomeAttribute("great attribute here!");
xmlData.setMyStringData("string child elements looks like a string attribute when using binding classes...");
MyNestedDataT childData = new MyNestedDataT();
childData.setSomeOtherData("one more silly string");
xmlData.setChildData(childData);
// of the possible 0..7 (grand)child elements, we just add 1
MyNestedDataT grandchildData = new MyNestedDataT();
childData.addSomeNestedData(grandchildData);
}
catch (AcsJContainerServicesEx e)
{
m_logger.log(Level.SEVERE, "failed to create ObsProposal. ", e);
}
return xmlData;
}
public ROdouble actAz()
{
return m_actAz;
}
public ROdouble actEl()
{
return m_actEl;
}
public ROdouble cmdAz()
{
return m_cmdAz;
}
public ROdouble cmdEl()
{
return m_cmdEl;
}
}