File: ETOperation.java

package info (click to toggle)
natbraille 2.0rc3-15
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 7,084 kB
  • sloc: java: 31,266; xml: 7,747; sh: 165; haskell: 50; makefile: 32
file content (125 lines) | stat: -rw-r--r-- 4,084 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/**************************************************************************
/* This class models the command-line of exiftool.
/*
/* Copyright (c) 2009 by Bernhard Bablok (mail@bablokb.de)
/*
/* This program is free software; you can redistribute it and/or modify
/* it under the terms of the GNU Library General Public License as published
/* by  the Free Software Foundation; either version 2 of the License or
/* (at your option) any later version.
/*
/* This program is distributed in the hope that it will be useful, but
/* WITHOUT ANY WARRANTY; without even the implied warranty of
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
/* GNU Library General Public License for more details.
/*
/* You should have received a copy of the GNU Library General Public License
/* along with this program; see the file COPYING.LIB.  If not, write to
/* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
/* Boston, MA  02111-1307 USA
/**************************************************************************/

package org.im4java.core;


/**
   This class models the command-line of exiftool. It extends the
   auto-generated class ETOps with a number of methods for tag retrival
   and tag manipulation. Since it is not efficient to translate the
   original exiftool commandline-options directly to java-methods,
   the methods of this class don't follow the usual 1:1 relationship
   between method-names and commandline option-names.

   @version $Revision: 1.4 $
   @author  $Author: bablokb, Bruno Mascret (warnings) $
*/

public class ETOperation extends ETOps {
  //////////////////////////////////////////////////////////////////////////////

  /**
   * Query all tags with the given tag-names. This method translates to
   * the -TAG commandline options.
   * See the exiftool documentation for details.
   * @param pTags the given tag-names
   * @return this ETOperation
   */

  public ETOperation getTags(String... pTags) {
    for (String tag:pTags) {
      iCmdArgs.add("-"+tag);
    }
    return this;
  }

  //////////////////////////////////////////////////////////////////////////////

  /**
   * Omit all tags with the given tag-names. This method translates to
   * the --TAG commandline options.
   * See the exiftool documentation for details.
   * @see ExiftoolCmd
   * @param pTags tags to be omitted
   * @return this ETOperation
   */

  public ETOperation omitTags(String... pTags) {
    for (String tag:pTags) {
      iCmdArgs.add("--"+tag);
    }
    return this;
  }

  //////////////////////////////////////////////////////////////////////////////

  /**
   * Set all tags with the given tag-names. This method translates to
   * the -TAG[+-][<]=Value commandline options.
   * See the exiftool documentation for details.
   * @param pTagExpressions A list in the form Tag[+-]=[<][Value],...
   * @return this ETOperation
   */

  public ETOperation setTags(String... pTagExpressions) {
    for (String exp:pTagExpressions) {
      iCmdArgs.add("-"+exp);
    }
    return this;
  }

  //////////////////////////////////////////////////////////////////////////////

  /**
   * Set tag with the content read from a file.
   * This method translates to the -TAG<=Filename commandline option.
   * See the exiftool documentation for details.
   * @param pTag      A tag name
   * @param pFilename A filename or filename-template
   * @return this ETOperation
  */

  public ETOperation setTag(String pTag, String pFilename) {
    iCmdArgs.add("-"+pTag+"<="+pFilename);
    return this;
  }

  //////////////////////////////////////////////////////////////////////////////

  /**
   * 
   * Delete all tags with the given tag-names. This method translates to
   * the -TAG= commandline options. Using the setTags()-methods with
   * omitted values has the same effect.
   * See the exiftool documentation for details.
   * @param pTags the tags
   * @return  this ETOperation
  */

  public ETOperation delTags(String... pTags) {
    for (String tag:pTags) {
      iCmdArgs.add("-"+tag+"=");
    }
    return this;
  }

}