1. /*
  2. * Copyright 2002-2004 The Apache Software Foundation
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. *
  16. */
  17. package org.apache.tools.ant.types.selectors;
  18. /**
  19. * This selector has one other selectors whose meaning it inverts. It
  20. * actually relies on NoneSelector for its implementation of the
  21. * isSelected() method, but it adds a check to ensure there is only one
  22. * other selector contained within.
  23. *
  24. * @since 1.5
  25. */
  26. public class NotSelector extends NoneSelector {
  27. /**
  28. * Default constructor.
  29. */
  30. public NotSelector() {
  31. }
  32. /**
  33. * @return a string representation of the selector
  34. */
  35. public String toString() {
  36. StringBuffer buf = new StringBuffer();
  37. if (hasSelectors()) {
  38. buf.append("{notselect: ");
  39. buf.append(super.toString());
  40. buf.append("}");
  41. }
  42. return buf.toString();
  43. }
  44. /**
  45. * Makes sure that there is only one entry, sets an error message if
  46. * not.
  47. */
  48. public void verifySettings() {
  49. if (selectorCount() != 1) {
  50. setError("One and only one selector is allowed within the "
  51. + "<not> tag");
  52. }
  53. }
  54. }