public AtmosObject apply(BlobMetadata from) { if (from == null) return null; UserMetadata userMd = new UserMetadata(); if (from.getUserMetadata() != null) { for (Entry<String, String> entry : from.getUserMetadata().entrySet()) userMd.getMetadata().put(entry.getKey().toLowerCase(), entry.getValue()); } return factory.create(blob2ContentMd.apply(from), blob2SysMd.apply(from), userMd); }
@Override public Map<String, String> apply(UserMetadata md) { Builder<String, String> headers = ImmutableMap.builder(); if (md.getMetadata().size() > 0) { String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getMetadata()); headers.put("x-emc-meta", header); } if (md.getListableMetadata().size() > 0) { String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getListableMetadata()); headers.put("x-emc-listable-meta", header); } if (md.getTags().size() > 0) { String header = Joiner.on(',').join(md.getTags()); headers.put("x-emc-tags", header); } if (md.getListableTags().size() > 0) { String header = Joiner.on(',').join(md.getListableTags()); headers.put("x-emc-listable-tags", header); } return headers.build(); } }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((contentMetadata == null) ? 0 : contentMetadata.hashCode()); result = prime * result + ((systemMetadata == null) ? 0 : systemMetadata.hashCode()); result = prime * result + ((userMetadata == null) ? 0 : userMetadata.hashCode()); return result; }
@Inject public AtmosObjectImpl(MutableContentMetadata contentMetadata) { this(contentMetadata, null, new UserMetadata()); }
public MutableBlobMetadata apply(AtmosObject from) { if (from == null) return null; MutableBlobMetadata to = new MutableBlobMetadataImpl(); to.setId(from.getSystemMetadata().getObjectID()); to.setLastModified(from.getSystemMetadata().getLastUserDataModification()); HttpUtils.copy(from.getContentMetadata(), to.getContentMetadata()); to.setName(objectName.apply(from)); to.setUri(from.getContentMetadata().getUri()); to.setContainer(Iterables.get(Splitter.on('/').split(from.getContentMetadata().getPath()),0)); if (from.getAllHeaders().containsEntry("x-emc-groupacl", "other=READ")) to.setPublicUri(shareUrl.apply(from.getContentMetadata().getPath())); if (from.getSystemMetadata().getType() == FileType.DIRECTORY) { to.setType(StorageType.FOLDER); } else { to.setType(StorageType.BLOB); } Map<String, String> lowerKeyMetadata = Maps.newHashMap(); for (Entry<String, String> entry : from.getUserMetadata().getMetadata().entrySet()) { String key = entry.getKey().toLowerCase(); if (!systemMetadata.contains(key)) lowerKeyMetadata.put(key, entry.getValue()); } to.setUserMetadata(lowerKeyMetadata); return to; } }
public void testListableMeta() { UserMetadata metadata = new UserMetadata(); metadata.getListableMetadata().put("apple", "bear"); metadata.getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, metadata); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }
public void testListableTags() { UserMetadata tagsdata = new UserMetadata(); tagsdata.getListableTags().add("apple"); tagsdata.getListableTags().add("sushi"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, tagsdata); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-tags"), "apple,sushi"); }
public void testTags() { UserMetadata tagsdata = new UserMetadata(); tagsdata.getTags().add("apple"); tagsdata.getTags().add("sushi"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, tagsdata); assertEquals(request.getFirstHeaderOrNull("x-emc-tags"), "apple,sushi"); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; AtmosObjectImpl other = (AtmosObjectImpl) obj; if (contentMetadata == null) { if (other.contentMetadata != null) return false; } else if (!contentMetadata.equals(other.contentMetadata)) return false; if (systemMetadata == null) { if (other.systemMetadata != null) return false; } else if (!systemMetadata.equals(other.systemMetadata)) return false; if (userMetadata == null) { if (other.userMetadata != null) return false; } else if (!userMetadata.equals(other.userMetadata)) return false; return true; }
public void testGood() { AtmosObject object = injector.getInstance(AtmosObject.Factory.class).create(null); Payload payload = Payloads.newStringPayload(""); object.setPayload(payload); object.getUserMetadata().getListableMetadata().put("apple", "bear"); object.getUserMetadata().getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, object); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }
@Inject public AtmosObjectImpl(MutableContentMetadata contentMetadata) { this(contentMetadata, null, new UserMetadata()); }
public MutableBlobMetadata apply(AtmosObject from) { if (from == null) return null; MutableBlobMetadata to = new MutableBlobMetadataImpl(); to.setId(from.getSystemMetadata().getObjectID()); to.setLastModified(from.getSystemMetadata().getLastUserDataModification()); HttpUtils.copy(from.getContentMetadata(), to.getContentMetadata()); to.setName(objectName.apply(from)); to.setUri(from.getContentMetadata().getUri()); to.setContainer(Iterables.get(Splitter.on('/').split(from.getContentMetadata().getPath()),0)); if (from.getAllHeaders().containsEntry("x-emc-groupacl", "other=READ")) to.setPublicUri(shareUrl.apply(from.getContentMetadata().getPath())); if (from.getSystemMetadata().getType() == FileType.DIRECTORY) { to.setType(StorageType.FOLDER); } else { to.setType(StorageType.BLOB); } Map<String, String> lowerKeyMetadata = Maps.newHashMap(); for (Entry<String, String> entry : from.getUserMetadata().getMetadata().entrySet()) { String key = entry.getKey().toLowerCase(); if (!systemMetadata.contains(key)) lowerKeyMetadata.put(key, entry.getValue()); } to.setUserMetadata(lowerKeyMetadata); return to; } }
public void testListableMeta() { UserMetadata metadata = new UserMetadata(); metadata.getListableMetadata().put("apple", "bear"); metadata.getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, metadata); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }
public void testListableTags() { UserMetadata tagsdata = new UserMetadata(); tagsdata.getListableTags().add("apple"); tagsdata.getListableTags().add("sushi"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, tagsdata); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-tags"), "apple,sushi"); }
public void testTags() { UserMetadata tagsdata = new UserMetadata(); tagsdata.getTags().add("apple"); tagsdata.getTags().add("sushi"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, tagsdata); assertEquals(request.getFirstHeaderOrNull("x-emc-tags"), "apple,sushi"); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; AtmosObjectImpl other = (AtmosObjectImpl) obj; if (contentMetadata == null) { if (other.contentMetadata != null) return false; } else if (!contentMetadata.equals(other.contentMetadata)) return false; if (systemMetadata == null) { if (other.systemMetadata != null) return false; } else if (!systemMetadata.equals(other.systemMetadata)) return false; if (userMetadata == null) { if (other.userMetadata != null) return false; } else if (!userMetadata.equals(other.userMetadata)) return false; return true; }
public void testGood() { AtmosObject object = injector.getInstance(AtmosObject.Factory.class).create(null); Payload payload = Payloads.newStringPayload(""); object.setPayload(payload); object.getUserMetadata().getListableMetadata().put("apple", "bear"); object.getUserMetadata().getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, object); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }
@Override public Map<String, String> apply(UserMetadata md) { Builder<String, String> headers = ImmutableMap.builder(); if (!md.getMetadata().isEmpty()) { String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getMetadata()); headers.put("x-emc-meta", header); } if (!md.getListableMetadata().isEmpty()) { String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getListableMetadata()); headers.put("x-emc-listable-meta", header); } if (!md.getTags().isEmpty()) { String header = Joiner.on(',').join(md.getTags()); headers.put("x-emc-tags", header); } if (!md.getListableTags().isEmpty()) { String header = Joiner.on(',').join(md.getListableTags()); headers.put("x-emc-listable-tags", header); } return headers.build(); } }
public AtmosObject apply(BlobMetadata from) { if (from == null) return null; UserMetadata userMd = new UserMetadata(); if (from.getUserMetadata() != null) { for (Entry<String, String> entry : from.getUserMetadata().entrySet()) userMd.getMetadata().put(entry.getKey().toLowerCase(), entry.getValue()); } return factory.create(blob2ContentMd.apply(from), blob2SysMd.apply(from), userMd); }
@Inject public AtmosObjectImpl(MutableContentMetadata contentMetadata) { this(contentMetadata, null, new UserMetadata()); }