public <T> Dispatch setProperty(PropertyType<T> propertyType, T propertyValue) throws IllegalArgumentException { String invalid = bridge.checkPropertyValidity(propertyType, propertyValue); if (invalid != null) { throw new IllegalArgumentException(invalid); } if (properties == null) { properties = new PropertyMap(); } properties.setValue(propertyType, propertyValue); return this; }
/** * Set a property, if the value is null, the property is removed. * * @param propertyType the property type * @param propertyValue the property value * @throws NullPointerException if the property type is null */ public <T> Response with(PropertyType<T> propertyType, T propertyValue) throws NullPointerException { if (propertyType == null) { throw new NullPointerException("No null property type allowed"); } properties.addValue(propertyType, propertyValue); return this; }
public String getMimeType() { return properties.getValue(PropertyType.MIME_TYPE); }
@Test public void testAddValue() { PropertyMap pm = new PropertyMap(); pm.addValue(FOO, "1"); assertEquals("1", pm.getValue(FOO)); assertEquals(Arrays.asList("1"), pm.getValues(FOO)); pm.addValue(FOO, "2"); assertEquals("1", pm.getValue(FOO)); assertEquals(Arrays.asList("1", "2"), pm.getValues(FOO)); assertTrue(pm.contains(FOO)); }
@Test public void testRemoveMultiValue() { PropertyMap pm = new PropertyMap(); pm.setValues(FOO, "1", "2"); pm.remove(FOO); assertNull(pm.getValue(FOO)); assertFalse(pm.contains(FOO)); }
@Test public void testAddValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValues(FOO, "1"); pm2.addValue(FOO, "2"); assertEquals(Arrays.asList("1"), pm1.getValues(FOO)); assertEquals(Arrays.asList("1", "2"), pm2.getValues(FOO)); }
@Test public void testMultiValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValues(FOO, "1", "2"); assertEquals(Arrays.asList("1", "2"), pm2.getValues(FOO)); pm2.setValue(FOO, "3"); assertEquals(Arrays.asList("1", "2"), pm1.getValues(FOO)); assertEquals(Arrays.asList("3"), pm2.getValues(FOO)); }
@Test public void testRemoveValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValues(FOO, "1"); pm2.remove(FOO); assertEquals(Arrays.asList("1"), pm1.getValues(FOO)); assertNull(pm2.getValues(FOO)); } }
@Test public void testSingleValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValue(FOO, "1"); assertEquals("1", pm2.getValue(FOO)); pm2.setValue(FOO, "2"); assertEquals("1", pm1.getValue(FOO)); assertEquals("2", pm2.getValue(FOO)); }
Response.View view = (Response.View)response; Phase.View.Dispatch update = (Phase.View.Dispatch)view; Boolean redirect = view.getProperties().getValue(PropertyType.REDIRECT_AFTER_ACTION); if (redirect != null && !redirect) { ControllerHandler<?> desc = this.bridge.getApplication().resolveBean(ControllerService.class).getDescriptor().getMethodByHandle(update.getTarget()); } else { String url = update.with(MimeType.PLAIN).with(update.getProperties()).toString(); Iterable<Map.Entry<String, String[]>> headers = view.getProperties().getValues(PropertyType.HEADER); if (headers == null) { headers = Tools.emptyIterable();
public Dispatch with(PropertyMap properties) { this.properties = new PropertyMap(properties); return this; }
public <T> boolean contains(PropertyType<T> property) throws NullPointerException { Values values = get(property, true, false); return values != null && values.size > 0; } }
public void send(Stream stream) throws IllegalStateException { // Send properties for (PropertyType<?> propertyType : properties) { Iterable<?> values = properties.getValues(propertyType); if (values != null) { for (Object o : values) { stream.provide(new Chunk.Property(o, propertyType)); } } } // Send real stream if (Status.this instanceof Response.Body) { ((Response.Body)Status.this).getData().send(stream); } else { stream.close(null); } } };
public void setTitle(String title) { if (properties != null) { properties.setValue(PropertyType.TITLE, title); } }
@Test public void testSingleValue() { PropertyMap pm = new PropertyMap(); pm.setValue(FOO, "1"); assertEquals("1", pm.getValue(FOO)); assertEquals(Arrays.asList("1"), pm.getValues(FOO)); assertTrue(pm.contains(FOO)); }
@Test public void testRemoveSingleValue() { PropertyMap pm = new PropertyMap(); pm.setValue(FOO, "1"); pm.remove(FOO); assertNull(pm.getValue(FOO)); assertFalse(pm.contains(FOO)); }
@Test public void testAddValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValues(FOO, "1"); pm2.addValue(FOO, "2"); assertEquals(Arrays.asList("1"), pm1.getValues(FOO)); assertEquals(Arrays.asList("1", "2"), pm2.getValues(FOO)); }
@Test public void testMultiValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValues(FOO, "1", "2"); assertEquals(Arrays.asList("1", "2"), pm2.getValues(FOO)); pm2.setValue(FOO, "3"); assertEquals(Arrays.asList("1", "2"), pm1.getValues(FOO)); assertEquals(Arrays.asList("3"), pm2.getValues(FOO)); }
@Test public void testRemoveValueDelegate() { PropertyMap pm1 = new PropertyMap(); PropertyMap pm2 = new PropertyMap(pm1); pm1.setValues(FOO, "1"); pm2.remove(FOO); assertEquals(Arrays.asList("1"), pm1.getValues(FOO)); assertNull(pm2.getValues(FOO)); } }