@Override public String getKey() { return sobj.getKey(); }
public String getKey() { return sobj.getKey(); }
@Override public String getAttribute(String key) { return sobj.getKey(); }
@Override public ISObject loadContent(ISObject sobj) { return get(sobj.getKey()); }
@Override public boolean exists() { return null != sobj && S.neq(NULL_KEY, sobj.getKey()); }
@Override public ISObject loadContent(ISObject sobj) { return getFull(sobj.getKey()); }
@Override public ISObject loadContent(ISObject sobj) { return getFull(sobj.getKey()); }
public void delete() { if (exists()) { ss.remove(sobj.getKey()); } }
@Override public String toString() { return S.fmt("BLOB://[%s]/%s", sobj.getKey(), sobj.getAttribute(FILENAME)); }
public InputStream forceGet() { if (sobj.isEmpty()) { sobj = ss.forceGet(sobj.getKey()); } return sobj.asInputStream(); }
private void setDefAttributes(ISObject sobj) { Map<String, String> map = C.newMap(); setDefAttributes(sobj.getKey(), map); sobj.setAttributes(map); }
public Blob(ISObject sobj, BlobStorageService ss) { E.NPE(sobj, ss); this.sobj = sobj; this.ss = ss; if (sobj instanceof LazyLoadSObject) { final F.Promise<ISObject> p = ss.loadLater(sobj.getKey()); final Blob me = this; new play.jobs.Job (){ @Override public void doJob() throws Exception { ISObject sobj = p.get(); if (null != sobj) { me.sobj = sobj; } } }.now(); } }
@Override public void set(InputStream is, String type) { if (exists()) { BlobStorageService.removeLater(sobj.getKey(), ss); } sobj = SObject.valueOf(NULL_KEY, is); type(type); }
public Blob save(String key, BlobStorageService ss) { if (exists()) { if (S.neq(sobj.getKey(), key)) { throw E.unexpected("Blob key doesn't match"); } else { // remove previous version ss.remove(key); } } else { // this replace the NULL_KEY with the real key sobj = SObject.valueOf(key, sobj); } ss.put(key, sobj); this.ss = ss; return this; }
@Override public ISObject put(String key, ISObject stuff) { String processedKey = key; if (storeSuffix) { String originalFilename = stuff.getAttribute(ISObject.ATTR_FILE_NAME); if (null != originalFilename) { String suffix = S.afterLast(originalFilename, "."); if (S.notBlank(suffix)) { suffix = S.concat(".", suffix); if (!key.endsWith(suffix)) { processedKey = S.concat(key, suffix); } } } } if ((S.eq(key, stuff.getKey()) || S.eq(processedKey, stuff.getKey()) && isManagedObject(stuff))) { return stuff; } Map<String, String> attrs = stuff.getAttributes(); removeRuntimeAttributes(attrs); if (!(stuff instanceof SObject.InputStreamSObject)) { long len = stuff.getLength(); if (0L < len) { attrs.put(ISObject.ATTR_CONTENT_LENGTH, S.string(len)); } } doPut(keyWithContextPath(processedKey), stuff, attrs); return getFull(processedKey); }
String fileName = sobj.getAttribute(ISObject.ATTR_FILE_NAME); if (S.blank(fileName)) { fileName = sobj.getKey();
String fileName = sobj.getAttribute(ISObject.ATTR_FILE_NAME); if (S.blank(fileName)) { fileName = sobj.getKey();