package open.dolphin.project; import static open.dolphin.project.Project.CLAIM_SENDER; /** * @author Kazushi Minagawa, Digital Globe, Inc. */ public class StubDolphin extends ProjectStub { // ASP & Pro private final String CONTEXT_ROOT = "/openDolphin/resources"; // Docker //private final String CONTEXT_ROOT = "/dolphin/openSource"; private String baseURI; private String[] spec; /** Creates new Project */ public StubDolphin() { } @Override public String getBaseURI() { if (baseURI==null) { StringBuilder sb = new StringBuilder(); String test = getServerURI(); if (test != null) { if (test.endsWith("/")) { int len = test.length(); test = test.substring(0, len-1); } sb.append(test); sb.append(CONTEXT_ROOT); baseURI = sb.toString(); } //createSpec(baseURI); } return baseURI; } private void createSpec(String test) { spec = new String[3]; if (test==null || "".equals(test)) { spec[0] = "http"; spec[1] = null; spec[2] = "8080"; } else { try { String[] comp = test.split("://"); spec[0] = comp[0]; String[] comp2 = comp[1].split(":"); spec[1] = comp2[0]; spec[2] = comp2[1]; } catch (RuntimeException e) { spec[0] = "http"; spec[1] = null; spec[2] = "8080"; } } } @Override public String getServerURI() { return getString(Project.SERVER_URI, null); } @Override public void setServerURI(String val) { setString(Project.SERVER_URI, val); baseURI = null; spec = null; } @Override public String getSchema() { if (spec==null) { createSpec(getServerURI()); } return spec[0]; } @Override public String getServer() { if (spec==null) { createSpec(getServerURI()); } return spec[1]; } @Override public String getPort() { if (spec==null) { createSpec(getServerURI()); } return spec[2]; } @Override public boolean isTester() { return false; } @Override public boolean claimSenderIsClient() { String test = getString(CLAIM_SENDER); return (test!=null && test.equals("client")); } @Override public boolean claimSenderIsServer() { String test = getString(CLAIM_SENDER); return (test!=null && test.equals("server")); } @Override public boolean canAccessToOrca() { // Always true when connection is server return claimSenderIsClient() ? claimAddressIsValid() : true; } @Override public boolean canSearchMaster() { return claimSenderIsClient() ? claimAddressIsValid() : true; } @Override public boolean canGlobalPublish() { return false; } }