/*
* Lokomo OneCMDB - An Open Source Software for Configuration
* Management of Datacenter Resources
*
* Copyright (C) 2006 Lokomo Systems AB
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program 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
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* Lokomo Systems AB can be contacted via e-mail: info@lokomo.com or via
* paper mail: Lokomo Systems AB, Sv�rdv�gen 27, SE-182 33
* Danderyd, Sweden.
*
*/
package org.onecmdb.core.internal.ccb.rfc;
/**
* Implementation of how to copy a ICI to another ICI. The implementation
* dependce hevily on Policyes to control the actuall copy mechanism.
*
*/
public class RFCCopyCi extends RFC {
/*
* protected ConfigurationItem copy() {
*
* ConfigurationItem copy = new ConfigurationItem(); for (IAttribute a :
* getAttributes()) {
* // strategy 1) // find the policy.... from (?)
*
*
*
* // //{{{ strategy 2) // send a message, and provide a callback, where
* the the new // offspring can be feteched
*
*
* final Map<String key , IAttribute offspring > data = new HashMap<String,IAttribute>(1);
*
* NotificationCallback callback = new NotificationCallback() { void
* callback(Object callbackData) { data.put("offspring", (IAttribute)
* callbackData);
* // let others now (should be handled more generically though) beencalled =
* true; synchronized(this) { notify(); } } };
*
* CreateOffspringNotification notification = new
* CreateOffspringNotification(ConfigurationItem.this, callback);
*
* sendNotification(notification);
*
* callback.waitForRProceessed(); IAttribute newOffspring =
* data.get("offspring");
*
*
* // wait for callback (at most 2 seconds)
*
*
*
*
* // }}}
*
*
*
* // clone the attribute, by accessing IExtensibleAttribute ea =
* (IExtensibleAttribute)
* a.getDerivedFrom().getAdapter(IExtensibleAttribute.class);
* ea.createOffspring(a.getName(), a.getType(), null);
*
* copy.addAttribute(a); }
*
*
* return copy; }
*/
}