@Override public URL create(E entity, Tenant tenant) { return this.create(entity, tenant, URLType.PUBLIC); }
@Override public URL create(Tenant entity, Tenant tenant, URLType type) { switch (type) { case API: return urlHelper.getTenantPlatformURL(tenant, "/api/tenant/"); case PUBLIC: default: return urlHelper.getTenantPlatformURL(tenant, ""); } } }
static <T extends Entity> TypeToken<EntityURLFactory<T>> entityURLFactoryOf(Class<T> entityType) { return new TypeToken<EntityURLFactory<T>>(){} .where(new TypeParameter<T>(){}, entityType); }
@Override public URL create(Entity entity, Tenant tenant, URLType type) { Preconditions.checkNotNull(entity, "Cannot create URL for a null entity"); // Check against CM if there is a entity URL factory registered with the type reference of // EntityURLFactory<EntityClass>, if not, use the "generic" (in the sense of default) // URL creation provided by super.create() try { EntityURLFactory urlFactory = this.componentManager.getInstance(entityURLFactoryOf(entity.getClass()).getType()); if (urlFactory != null) { return urlFactory.create(entity, tenant, type); } } catch (ComponentLookupException e) { // Ignore, will return later } return super.create(entity, tenant, type); }
@Override public URL create(E entity, Tenant tenant, URLType type) { String path = "/" + getPluralForm(entity) + "/" + entity.getSlug(); switch (type) { case API: path = "/api/" + path; return urlHelper.getTenantPlatformURL(tenant, path); case PUBLIC: default: return urlHelper.getTenantWebURL(tenant, path); } }
public URL getTenantPlatformURL(Tenant tenant, String path) { return getURL(getTenantPlatformDomain(tenant), path); }
public URL getTenantWebURL(Tenant tenant, String path) { return getURL(getTenantWebDomain(tenant), path); }
public String getTenantWebDomain(Tenant tenant) { if (siteSettings.getWebDomainName().isPresent()) { return getTenantDomainName(siteSettings.getWebDomainName().get(), tenant); } return getTenantPlatformDomain(tenant); }
public String getTenantWebBaseURL(Tenant tenant) { return getTenantWebURL(tenant, "").toString(); }
public String getTenantPlatformBaseURL(Tenant tenant) { return getTenantPlatformURL(tenant, "").toString(); }
public String getContextPlatformBaseURL() { return getTenantPlatformBaseURL(context.getTenant()); }
public String getTenantPlatformDomain(Tenant tenant) { return getTenantDomainName(siteSettings.getDomainName(), tenant); }
public String getContextWebDomain() { return getTenantWebDomain(context.getTenant()); }
public String getContextPlatformDomain() { return getTenantPlatformDomain(context.getTenant()); }
public URL getContextBackOfficeURL(String path) { return getTenantBackOfficeURL(context.getTenant(), path); }
public String getContextWebBaseURL() { return getTenantWebBaseURL(context.getTenant()); }
public URL getTenantBackOfficeURL(Tenant tenant, String path) { String backOfficeDomain; String realPath; if (siteSettings.getBackOfficeDomainName().isPresent()) { backOfficeDomain = siteSettings.getBackOfficeDomainName().get(); realPath = path; } else { backOfficeDomain = getTenantPlatformDomain(tenant); realPath = "/admin" + (path.startsWith("/") ? "" : "/") + path; } return getURL(backOfficeDomain, realPath); }
@Override public URL create(E entity) { return this.create(entity, context.getTenant(), URLType.PUBLIC); }
public URL getContextWebURL(String path) { return getTenantWebURL(context.getTenant(), path); }
public URL getContextPlatformURL(String path) { return getTenantPlatformURL(context.getTenant(), path); }