[New] Extended InMemoryElementListener to configure if add or update
This commit is contained in:
parent
f93d361c4e
commit
70d393dcc1
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.agent.api;
|
package li.strolch.runtime.agent.api;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -27,6 +27,11 @@ import li.strolch.runtime.agent.api.ResourceMap;
|
||||||
*/
|
*/
|
||||||
public class InMemoryElementListener implements StrolchElementListener {
|
public class InMemoryElementListener implements StrolchElementListener {
|
||||||
|
|
||||||
|
private boolean addOrders;
|
||||||
|
private boolean addResources;
|
||||||
|
private boolean updateOrders;
|
||||||
|
private boolean updateResources;
|
||||||
|
|
||||||
private StrolchTransaction tx;
|
private StrolchTransaction tx;
|
||||||
private ResourceMap resourceMap;
|
private ResourceMap resourceMap;
|
||||||
private OrderMap orderMap;
|
private OrderMap orderMap;
|
||||||
|
@ -35,15 +40,64 @@ public class InMemoryElementListener implements StrolchElementListener {
|
||||||
this.tx = tx;
|
this.tx = tx;
|
||||||
this.resourceMap = resourceMap;
|
this.resourceMap = resourceMap;
|
||||||
this.orderMap = orderMap;
|
this.orderMap = orderMap;
|
||||||
|
|
||||||
|
this.addResources = true;
|
||||||
|
this.addOrders = true;
|
||||||
|
this.updateResources = true;
|
||||||
|
this.updateOrders = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param addResources
|
||||||
|
* the addResources to set
|
||||||
|
*/
|
||||||
|
public void setAddResources(boolean addResources) {
|
||||||
|
this.addResources = addResources;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param addOrders
|
||||||
|
* the addOrders to set
|
||||||
|
*/
|
||||||
|
public void setAddOrders(boolean addOrders) {
|
||||||
|
this.addOrders = addOrders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param updateResources
|
||||||
|
* the updateResources to set
|
||||||
|
*/
|
||||||
|
public void setUpdateResources(boolean updateResources) {
|
||||||
|
this.updateResources = updateResources;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param updateOrders
|
||||||
|
* the updateOrders to set
|
||||||
|
*/
|
||||||
|
public void setUpdateOrders(boolean updateOrders) {
|
||||||
|
this.updateOrders = updateOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyResource(Resource resource) {
|
public void notifyResource(Resource resource) {
|
||||||
|
if (this.resourceMap.hasElement(this.tx, resource.getType(), resource.getId())) {
|
||||||
|
if (this.updateResources) {
|
||||||
|
this.resourceMap.update(this.tx, resource);
|
||||||
|
}
|
||||||
|
} else if (this.addResources) {
|
||||||
this.resourceMap.add(this.tx, resource);
|
this.resourceMap.add(this.tx, resource);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyOrder(Order order) {
|
public void notifyOrder(Order order) {
|
||||||
|
if (this.orderMap.hasElement(this.tx, order.getType(), order.getId())) {
|
||||||
|
if (this.updateOrders) {
|
||||||
|
this.orderMap.update(this.tx, order);
|
||||||
|
}
|
||||||
|
} else if (this.addOrders) {
|
||||||
this.orderMap.add(this.tx, order);
|
this.orderMap.add(this.tx, order);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue