@Override public <P extends Resolvable<?, ?>, C extends Resolvable<?, ?>> String caseResolvable(Resolvable<P, C> object) { return object.getName(); }
private String getFileName() { return projectVersion.getObject().getName() + ".zip"; } }
/** * creates an archive that includes all children of the resolvable * @param parent * @param resp * @throws IOException */ private void serveArchive(Resolvable<?,?> parent, HttpServletResponse resp) throws IOException { resp.setContentType("application/zip"); resp.setHeader("Content-disposition",MessageFormat.format("attachment;filename={0}.zip",parent.getName())); ZipOutputStream out = new ZipOutputStream(resp.getOutputStream()); addChildrenToArchive(out,parent); out.close(); resp.flushBuffer(); }
@Override protected void beforeUpdateFormComponentModels() { super.beforeUpdateFormComponentModels(); IModel model = getModel(); if(model!=null && model.getObject() instanceof Resolvable) { //store the original project name in case it gets changed Resolvable resolvable = (Resolvable) model.getObject(); oldName = resolvable.getName(); } }
/** * called when the name of a resolvable changes * @param oldName * @param model */ @SuppressWarnings("rawtypes") protected void renameResolvable(String oldName, IModel<T> model) { T object = model.getObject(); if (object instanceof Resolvable) { Resolvable r = (Resolvable) object; logger.info("Renaming {} {} to {}",r.getClass().getSimpleName(), oldName, r.getName()); URI absoluteFilePath = r.absoluteFilePath(); String fileString = absoluteFilePath.toFileString(); if(!fileString.startsWith("/") || fileString.startsWith("\\")) { fileString = "/"+fileString; } File targetFile = new File(fileString); File sourceFile = new File(targetFile.getParentFile(),oldName); sourceFile.renameTo(targetFile); } }
/** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated NOT */ @SuppressWarnings("rawtypes") public URI toURI() { EObject object = this; Deque<String> segments = new ArrayDeque<String>(); while (object != null) { if (object instanceof Resolvable<?, ?>) { Resolvable r = (Resolvable) object; //TODO: this shouldn't be necessary. Make this more consistent if(r.getName()!=null) segments.push((r).getName()); } object = object.eContainer(); } return URI.createHierarchicalURI(segments.toArray(new String[segments.size()]),null,null); }
/** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public C getChild(String name) { for (C child : getChildren()) { String childName = child.getName(); if(childName==null) { logger.error("found child with 'null' name during resolve at "+fullPath()); continue; } if (childName.equals(name)) return child; } return null; }
public static String constructPermissionName(Resolvable<?, ?> r, String action){ Resolvable<?, ?> rightsContainer = getActualTarget(r); if (rightsContainer instanceof Workspace) { // in that case the name pattern is a bit different // TODO: unify it return MessageFormat.format(WORKSPACE_PERMISSION_PATTERN,r.eClass().getName(),action); } return constructPermissionName(rightsContainer.eClass().getName(), rightsContainer.getName(), action); }
@Override public Resolvable<?, ?> resolveChild(List<String> pathSegments) { if (pathSegments.isEmpty()) return this; for (C child : getChildren()) { String name = child.getName(); if(name==null) { logger.error("found child with 'null' name during resolve at "+fullPath()); continue; } if (name.equals(URI.decode(pathSegments.get(0)))) return child.resolveChild(pathSegments.subList(1, pathSegments.size())); } return null; }
private LinkTarget buildLinkTarget(Resolvable<?, ?> resolvable, boolean endsOnSlash) { StringBuilder hrefBuilder = new StringBuilder(); LabelSwitch labelSwitch = new LabelSwitch(getLocale()); StringBuilder name = new StringBuilder(); name.append(labelSwitch.doSwitch(resolvable)); if (resolvable.getParent() == null) hrefBuilder.append("/"); else if (resolvable.getParent() instanceof Workspace) hrefBuilder.append(endsOnSlash ? resolvable.getName() : "workspace/" + resolvable.getName()); else hrefBuilder.append(endsOnSlash ? resolvable.getName() : resolvable.getParent().getName() + "/" + resolvable.getName()); Resolvable<?, ?> folder = resolvable; if(folder instanceof ResourceFolder) { // if it is a folder, squash more children, if there is only one while (folder.getChildren().size() == 1) { folder = folder.getChildren().get(0); hrefBuilder.append("/"); hrefBuilder.append(folder.getName()); name.append("/"); name.append(labelSwitch.doSwitch(folder)); } } LinkTarget target = new LinkTarget(Model.of(name.toString()),hrefBuilder.toString(),folder); return target; }
public static PageParameters buildPageParametersFor(Resolvable<?, ?> r) { PageParameters params = new PageParameters(); Deque<String> segments = new ArrayDeque<String>(); Resolvable<?, ?> part = r; while(part!=null) { String name = part.getName(); if(name!=null) segments.push(name); part = part.getParent(); } int count = 0; for (String string : segments) { params.set(count++, string); } return params; }