ws.ladder.model.operation.CloneOperation Maven / Gradle / Ivy
/**
* Ladder, empowering Model Driven Architecture in J2EE applications
*
* Copyright (c) 2012, Dilip Dalton
*
* Licensed 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 ws.ladder.model.operation;
import ws.ladder.model.CallInfo;
import ws.ladder.model.ExtendedDataObject;
import ws.ladder.util.ClassUtil;
public class CloneOperation extends AbstractOperation {
private Object result;
@Override
protected void processCollection(CallInfo callInfo) throws Exception {
if(callInfo.isDataType())
return;
for (Object nextSource : ((ExtendedDataObject)callInfo.getInput()).getList()) {
CallInfo next = new CallInfo(nextSource, null, callInfo, null);
if(next.isCascadable()) {
next.setOutput(getExistingTarget(next));
next.setOutput(createTarget(next, null));
processValue(next);
} else
next.setOutput(createTarget(next, ClassUtil.getInstance(nextSource), null));
}
cloneToMany(callInfo);
}
@Override
protected void setResult(Object target) {
this.result = target;
}
@Override
public Object getResult() {
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy