@Override public Object doUnmarshal( Object result, HierarchicalStreamReader reader, UnmarshallingContext context) { LayerInfoImpl li = (LayerInfoImpl) super.doUnmarshal(result, reader, context); MetadataMap metadata = li.getMetadata(); if (li.getAuthorityURLs() == null && metadata != null) { String serialized = metadata.get("authorityURLs", String.class); List<AuthorityURLInfo> authorities; if (serialized == null) { authorities = new ArrayList<AuthorityURLInfo>(1); } else { authorities = AuthorityURLInfoInfoListConverter.fromString(serialized); } li.setAuthorityURLs(authorities); } if (li.getIdentifiers() == null && metadata != null) { String serialized = metadata.get("identifiers", String.class); List<LayerIdentifierInfo> identifiers; if (serialized == null) { identifiers = new ArrayList<LayerIdentifierInfo>(1); } else { identifiers = LayerIdentifierInfoListConverter.fromString(serialized); } li.setIdentifiers(identifiers); } return li; } }
@Test public void testPropertyEqualsIndexed() { AuthorityURLInfo aurl1 = new AuthorityURL(); aurl1.setName("url1"); AuthorityURLInfo aurl2 = new AuthorityURL(); aurl2.setName("url2"); AuthorityURLInfo aurl3 = new AuthorityURL(); aurl3.setName("url3"); vectorLayer.setAuthorityURLs(Arrays.asList(aurl1, aurl2, aurl3)); assertTrue(equal("authorityURLs[1]", aurl1).evaluate(vectorLayer)); assertTrue(equal("authorityURLs[1].name", aurl1.getName()).evaluate(vectorLayer)); assertTrue(equal("authorityURLs[2]", aurl2).evaluate(vectorLayer)); assertTrue(equal("authorityURLs[2].name", aurl2.getName()).evaluate(vectorLayer)); assertTrue(equal("authorityURLs[3]", aurl3).evaluate(vectorLayer)); assertTrue(equal("authorityURLs[3].name", aurl3.getName()).evaluate(vectorLayer)); }