[Bugfix] fixed an issue where cloning a Resource was missing the params

This commit is contained in:
Robert von Burg 2013-12-28 12:58:13 +01:00
parent fc92e9fff3
commit 2cb1aa0ffe
10 changed files with 18 additions and 10 deletions

View File

@ -91,7 +91,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
* *
* @return the found {@link Parameter} or null if it was not found * @return the found {@link Parameter} or null if it was not found
*/ */
public <T> Parameter<T> getParameter(String bagKey, String paramKey) { public <T> T getParameter(String bagKey, String paramKey) {
if (this.parameterBagMap == null) if (this.parameterBagMap == null)
return null; return null;
ParameterBag bag = this.parameterBagMap.get(bagKey); ParameterBag bag = this.parameterBagMap.get(bagKey);

View File

@ -259,7 +259,13 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
@Override @Override
protected void fillClone(StrolchElement clone) { protected void fillClone(StrolchElement clone) {
super.fillClone(clone); super.fillClone(clone);
((ParameterizedElement) clone).setType(this.type); ParameterizedElement peClone = (ParameterizedElement) clone;
peClone.setType(this.type);
if(this.parameterMap != null) {
for(Parameter<?> param : this.parameterMap.values()) {
peClone.addParameter(param.getClone());
}
}
} }
@SuppressWarnings("nls") @SuppressWarnings("nls")

View File

@ -91,7 +91,7 @@ public class BooleanParameter extends AbstractParameter<Boolean> {
} }
@Override @Override
public Parameter<Boolean> getClone() { public BooleanParameter getClone() {
BooleanParameter clone = new BooleanParameter(); BooleanParameter clone = new BooleanParameter();
super.fillClone(clone); super.fillClone(clone);

View File

@ -94,7 +94,7 @@ public class DateParameter extends AbstractParameter<Date> {
} }
@Override @Override
public Parameter<Date> getClone() { public DateParameter getClone() {
DateParameter clone = new DateParameter(); DateParameter clone = new DateParameter();
super.fillClone(clone); super.fillClone(clone);

View File

@ -94,7 +94,7 @@ public class FloatParameter extends AbstractParameter<Double> {
} }
@Override @Override
public Parameter<Double> getClone() { public FloatParameter getClone() {
FloatParameter clone = new FloatParameter(); FloatParameter clone = new FloatParameter();
super.fillClone(clone); super.fillClone(clone);

View File

@ -93,7 +93,7 @@ public class IntegerParameter extends AbstractParameter<Integer> {
} }
@Override @Override
public Parameter<Integer> getClone() { public IntegerParameter getClone() {
IntegerParameter clone = new IntegerParameter(); IntegerParameter clone = new IntegerParameter();
super.fillClone(clone); super.fillClone(clone);

View File

@ -93,7 +93,7 @@ public class LongParameter extends AbstractParameter<Long> {
} }
@Override @Override
public Parameter<Long> getClone() { public LongParameter getClone() {
LongParameter clone = new LongParameter(); LongParameter clone = new LongParameter();
super.fillClone(clone); super.fillClone(clone);

View File

@ -140,4 +140,7 @@ public interface Parameter<T> extends StrolchElement {
@Override @Override
public boolean equals(Object obj); public boolean equals(Object obj);
@Override
public Parameter<T> getClone();
} }

View File

@ -23,7 +23,6 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import li.strolch.exception.StrolchException; import li.strolch.exception.StrolchException;
import li.strolch.model.StrolchElement;
import li.strolch.model.Tags; import li.strolch.model.Tags;
import org.w3c.dom.Element; import org.w3c.dom.Element;
@ -125,7 +124,7 @@ public class StringListParameter extends AbstractParameter<List<String>> impleme
} }
@Override @Override
public StrolchElement getClone() { public StringListParameter getClone() {
StringListParameter clone = new StringListParameter(); StringListParameter clone = new StringListParameter();
super.fillClone(clone); super.fillClone(clone);

View File

@ -95,7 +95,7 @@ public class StringParameter extends AbstractParameter<String> {
} }
@Override @Override
public Parameter<String> getClone() { public StringParameter getClone() {
StringParameter clone = new StringParameter(); StringParameter clone = new StringParameter();
super.fillClone(clone); super.fillClone(clone);