import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; public class Demo { public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(CustomerImpl.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); File xml = new File("input.xml"); Customer customer = (Customer) unmarshaller.unmarshal(xml); Address address = customer.getAddress(); System.out.println(address.getStreet()); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(customer, System.out); } }
public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Address other = (Address) obj; return equals(this.getStreet(),other.getStreet()) && equals(this.getStreetNumber(), other.getStreetNumber()) && equals(this.getStreetLetter(), other.getStreetLetter()) && equals(this.getTown(), other.getTown()); } private boolean equals(Object control, Object test) { if(null == control) { return null == test; } return control.equals(test); }
@XmlRootElement(name="address") class Address { ... @XmlElement String street; } @XmlRootElement(name="person") class Person { ... @XmlTransient Address address; @XmlElement public String getStreet() { return (address!= null) ? address.getStreet() : null; } }
class Address{ private street = "123 Lame Street"; public getStreet(){ return street; } } class Warehouse{ Address address = new Address(); // create an instance; not just declare public void shipping(){ shipTo(address.getStreet()); // Here's how to "communicate" } }
@Test public void testModifyWithGetter() { final String rule1 = "package foo.bar\n" + "import " + Person.class.getName() + "\n" + "declare Person @propertyReactive end\n" + "rule x\n" + " when\n" + " $p : Person( address != null ) @watch(!address) \n" + " then\n" + " modify($p){getAddress().setStreet(\"foo\");}\n" + "end"; final KieHelper helper = new KieHelper(); helper.addContent(rule1, ResourceType.DRL); final KieSession ksession = helper.build().newKieSession(); final Person p = new Person(); p.setAddress(new Address()); ksession.insert(p); final int fired = ksession.fireAllRules(10); assertEquals(1, fired); assertEquals("foo", p.getAddress().getStreet()); }
assertEquals(new Address("s1").getStreet(), ((MvelConstraint) alphanode.getConstraint()).getField().getValue());
assertEquals(new Address("s1").getStreet(), ((MvelConstraint) constraint).getField().getValue());
if (constraint instanceof MvelConstraint) { assertTrue(((MvelConstraint) alphanode.getConstraint()).getFieldExtractor() instanceof MVELObjectClassFieldReader); assertEquals(new Address("s1").getStreet(), ((MvelConstraint) alphanode.getConstraint()).getField().getValue());