From da731d2bb81666b9c697d9099da632e7dfcdc0f7 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 9 Sep 2014 12:13:21 +0200 Subject: Replaced int sysKey Item identifier with UUID, which is now portable. ItemPath objects are now used to identify Items throughout the kernel, replacing ints and Integers. --- .../instance/predefined/WriteProperty.java | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java') diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java index abb0e95..079f8e0 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java @@ -11,9 +11,12 @@ package com.c2kernel.lifecycle.instance.predefined; +import java.util.Arrays; + import com.c2kernel.common.InvalidDataException; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.lookup.AgentPath; +import com.c2kernel.lookup.ItemPath; import com.c2kernel.persistency.ClusterStorage; import com.c2kernel.persistency.ClusterStorageException; import com.c2kernel.process.Gateway; @@ -37,16 +40,14 @@ public class WriteProperty extends PredefinedStep //requestdata is xmlstring @Override - protected String runActivityLogic(AgentPath agent, int itemSysKey, + protected String runActivityLogic(AgentPath agent, ItemPath item, int transitionID, String requestData) throws InvalidDataException { - Logger.msg(1, "WriteProperty::request() - Starting."); String[] params = getDataList(requestData); + if (Logger.doLog(3)) Logger.msg(3, "WriteProperty: called by "+agent+" on "+item+" with parameters "+Arrays.toString(params)); if (params.length != 2) - throw new InvalidDataException("WriteProperty usage: [ name, value ]", ""); - - Logger.msg(5, "WriteProperty::request() - name:" + params[0] +" val:"+params[1]); + throw new InvalidDataException("WriteProperty: invalid parameters "+Arrays.toString(params), ""); String name = params[0]; String newValue = params[1]; @@ -54,19 +55,17 @@ public class WriteProperty extends PredefinedStep Property prop; try { - prop = (Property)Gateway.getStorage().get(itemSysKey, ClusterStorage.PROPERTY+"/"+name, null); + prop = (Property)Gateway.getStorage().get(item, ClusterStorage.PROPERTY+"/"+name, null); if (!prop.isMutable() && !newValue.equals(prop.getValue())) - throw new InvalidDataException("Property '"+name+"' is not mutable.", ""); + throw new InvalidDataException("WriteProperty: Property '"+name+"' is not mutable.", ""); prop.setValue(newValue); - Gateway.getStorage().put(itemSysKey, prop, null); + Gateway.getStorage().put(item, prop, null); } catch (ObjectNotFoundException e) { throw new InvalidDataException("WriteProperty: Property '"+name+"' not found.", ""); } catch (ClusterStorageException e) { - Logger.error(e); - throw new InvalidDataException("Storage error. See logs.", ""); + throw unknownException(e); } - Logger.msg(1, "WriteProperty::request() - DONE."); return requestData; } } -- cgit v1.2.3