private boolean containsPublishedFiles(IStorage dir, IDesignerUser user, String timeStamp) { for (Version version : user.getVersions()) { if (!version.getTime().equals(timeStamp)) continue; for (String res : version.resources) { IPath resPath = new Path(res); while (resPath.segment(0).equals(".")) resPath = resPath.removeFirstSegments(1); if (dir.getName().equals(resPath.segment(0))) { return true; } } } return false; }
public void publish(String name, Version version) { IDesignerUser user = getDesignerUser(name); IStorage commentingDir = user.getCommentingDirectory(); if (!commentingDir.exists()) { commentingDir.mkdir(); (baseDirectory.newInstance(commentingDir, "snapshot")).mkdir(); (baseDirectory.newInstance(commentingDir, "livedoc")).mkdir(); } initVersionDir(user, version.getTime()); saveVersionFile(user); // Persist review information this.saveReviewerVersionFiles(version); }
public Reviewer isVaild(String name, String id, String versionTime) { IDesignerUser user = getDesignerUser(name); if (versionTime == null) { if (user.getLatestVersion() != null) versionTime = user.getLatestVersion().getTime(); } if (versionTime == null) return null; List<Version> versionList = user.getVersions(); for (Version version : versionList) { if (version.getTime().equals(versionTime)) { List<Reviewer> reviewers = version.getReviewers(); for (Reviewer reviewer : reviewers) { if (reviewer.getEmail().equals(id)) { return reviewer; } } } } return null; }
public void save(IStorage file, org.davinci.server.review.user.IDesignerUser user) { OutputStream out = null; try { if (!file.exists()) try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { out = file.getOutputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element rootElement = document.createElement("user"); document.appendChild(rootElement); Element latestVersionElement = document.createElement("latestVersion"); latestVersionElement.setAttribute("id", user.getLatestVersion().getVersionID()); latestVersionElement.setAttribute("title", user.getLatestVersion().getVersionTitle()); latestVersionElement.setAttribute("time", user.getLatestVersion().getTime()); rootElement.appendChild(latestVersionElement); for (Version version : user.getVersions()) { Element element = document.createElement("version"); element.setAttribute("id", version.getVersionID()); element.setAttribute("title", version.getVersionTitle()); element.setAttribute("time", version.getTime()); element.setAttribute("isDraft", version.isDraft() ? "true" : "false"); element.setAttribute("dueDate", version.dueDateString()); element.setAttribute("desireWidth", version.getDesireWidth() + ""); element.setAttribute("desireHeight", version.getDesireHeight() + ""); element.setAttribute( "hasClosedManually", Boolean.toString(version.isHasClosedManually())); element.setAttribute("restartFrom", version.getRestartFrom()); element.setAttribute("description", version.getDescription()); element.setAttribute("receiveEmail", version.isReceiveEmail() ? "true" : "false"); element.setAttribute("hasRestarted", version.isHasRestarted() ? "true" : "false"); for (Reviewer reviewer : version.getReviewers()) { Element reviewerElement = document.createElement("reviewer"); reviewerElement.setAttribute("name", reviewer.getUserName()); reviewerElement.setAttribute("email", reviewer.getEmail()); element.appendChild(reviewerElement); } for (String resource : version.resources) { Element resourceElement = document.createElement("resource"); resourceElement.setAttribute("path", resource); element.appendChild(resourceElement); } rootElement.appendChild(element); } Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); // $NON-NLS-1$ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // $NON-NLS-1$ transformer.setOutputProperty(OutputKeys.INDENT, "yes"); // $NON-NLS-1$ DOMSource source = new DOMSource(document); StreamResult result = new StreamResult(out); transformer.transform(source, result); } catch (TransformerFactoryConfigurationError e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }