PageRenderTime 76ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/netbeans-7.3/bugtracking.bridge/src/org/netbeans/modules/bugtracking/vcs/HgHookImpl.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Java | 113 lines | 54 code | 14 blank | 45 comment | 2 complexity | 612d4698af2c6913454e9426f19c18c6 MD5 | raw file
  1. /*
  2. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  3. *
  4. * Copyright 2008-2010 Oracle and/or its affiliates. All rights reserved.
  5. *
  6. * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  7. * Other names may be trademarks of their respective owners.
  8. *
  9. * The contents of this file are subject to the terms of either the GNU
  10. * General Public License Version 2 only ("GPL") or the Common
  11. * Development and Distribution License("CDDL") (collectively, the
  12. * "License"). You may not use this file except in compliance with the
  13. * License. You can obtain a copy of the License at
  14. * http://www.netbeans.org/cddl-gplv2.html
  15. * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  16. * specific language governing permissions and limitations under the
  17. * License. When distributing the software, include this License Header
  18. * Notice in each file and include the License file at
  19. * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
  20. * particular file as subject to the "Classpath" exception as provided
  21. * by Oracle in the GPL Version 2 section of the License file that
  22. * accompanied this code. If applicable, add the following below the
  23. * License Header, with the fields enclosed by brackets [] replaced by
  24. * your own identifying information:
  25. * "Portions Copyrighted [year] [name of copyright owner]"
  26. *
  27. * If you wish your version of this file to be governed by only the CDDL
  28. * or only the GPL Version 2, indicate your decision by adding
  29. * "[Contributor] elects to include this software in this distribution
  30. * under the [CDDL or GPL Version 2] license." If you do not indicate a
  31. * single choice of license, a recipient has the option to distribute
  32. * your version of this file under either the CDDL, the GPL Version 2 or
  33. * to extend the choice of license to its licensees as provided above.
  34. * However, if you add GPL Version 2 code and therefore, elected the GPL
  35. * Version 2 license, then the option applies only if the new code is
  36. * made subject to such option by the copyright holder.
  37. *
  38. * Contributor(s):
  39. *
  40. * Portions Copyrighted 2008-2009 Sun Microsystems, Inc.
  41. */
  42. package org.netbeans.modules.bugtracking.vcs;
  43. import java.io.IOException;
  44. import java.util.Date;
  45. import javax.swing.JPanel;
  46. import org.netbeans.modules.versioning.hooks.HgHook;
  47. import org.netbeans.modules.versioning.hooks.HgHookContext;
  48. import org.netbeans.modules.versioning.hooks.HgHookContext.LogEntry;
  49. import org.openide.util.NbBundle;
  50. /**
  51. * Mercurial hook implementation
  52. * @author Tomas Stupka
  53. */
  54. public class HgHookImpl extends HgHook {
  55. private static final String[] SUPPORTED_ISSUE_INFO_VARIABLES = new String[] {"id", "summary"}; // NOI18N
  56. private static final String[] SUPPORTED_REVISION_VARIABLES = new String[] {"changeset", "author", "date", "message"}; // NOI18N
  57. private final String name;
  58. private HookImpl delegate;
  59. public HgHookImpl() {
  60. this.name = NbBundle.getMessage(HgHookImpl.class, "LBL_VCSHook"); // NOI18N
  61. VCSHooksConfig config = VCSHooksConfig.getInstance(VCSHooksConfig.HookType.HG);
  62. delegate = new HookImpl(config, SUPPORTED_ISSUE_INFO_VARIABLES, SUPPORTED_REVISION_VARIABLES);
  63. }
  64. @Override
  65. public HgHookContext beforeCommit(HgHookContext context) throws IOException {
  66. String msg = delegate.beforeCommit(context.getFiles(), context.getMessage());
  67. return msg != null ? new HgHookContext(context.getFiles(), msg, context.getLogEntries()) : null;
  68. }
  69. @Override
  70. public void afterCommit(HgHookContext context) {
  71. String author = context.getLogEntries()[0].getAuthor();
  72. String changeset = context.getLogEntries()[0].getChangeset();
  73. Date date = context.getLogEntries()[0].getDate();
  74. String message = context.getMessage();
  75. delegate.afterCommit(context.getFiles(), author, changeset, date, message, "HG", true);
  76. }
  77. @Override
  78. public HgHookContext beforePush(HgHookContext context) throws IOException {
  79. return super.beforePush(context);
  80. }
  81. @Override
  82. public void afterPush(HgHookContext context) {
  83. LogEntry[] logEntries = context.getLogEntries();
  84. String[] changesets = new String[logEntries.length];
  85. for (int i = 0; i < logEntries.length; i++) {
  86. LogEntry logEntry = logEntries[i];
  87. changesets[i] = logEntry.getChangeset();
  88. }
  89. delegate.afterPush(context.getFiles(), changesets, "HG");
  90. }
  91. @Override
  92. public JPanel createComponent(HgHookContext context) {
  93. return delegate.createComponent(context.getFiles());
  94. }
  95. @Override
  96. public String getDisplayName() {
  97. return name;
  98. }
  99. }