Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
DefaultFileMarkerHandler |
|
| 1.4545454545454546;1.455 |
1 | package org.apache.maven.plugin.dependency.utils.markers; | |
2 | ||
3 | /* | |
4 | * Licensed to the Apache Software Foundation (ASF) under one | |
5 | * or more contributor license agreements. See the NOTICE file | |
6 | * distributed with this work for additional information | |
7 | * regarding copyright ownership. The ASF licenses this file | |
8 | * to you under the Apache License, Version 2.0 (the | |
9 | * "License"); you may not use this file except in compliance | |
10 | * with the License. You may obtain a copy of the License at | |
11 | * | |
12 | * http://www.apache.org/licenses/LICENSE-2.0 | |
13 | * | |
14 | * Unless required by applicable law or agreed to in writing, | |
15 | * software distributed under the License is distributed on an | |
16 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
17 | * KIND, either express or implied. See the License for the | |
18 | * specific language governing permissions and limitations | |
19 | * under the License. | |
20 | */ | |
21 | ||
22 | /** | |
23 | * | |
24 | */ | |
25 | ||
26 | import java.io.File; | |
27 | import java.io.IOException; | |
28 | ||
29 | import org.apache.maven.artifact.Artifact; | |
30 | import org.apache.maven.plugin.MojoExecutionException; | |
31 | ||
32 | /** | |
33 | * @author <a href="mailto:brianf@apache.org">Brian Fox</a> | |
34 | * @version $Id: DefaultFileMarkerHandler.java 728546 2008-12-21 22:56:51Z bentmann $ | |
35 | */ | |
36 | public class DefaultFileMarkerHandler | |
37 | implements MarkerHandler | |
38 | { | |
39 | protected Artifact artifact; | |
40 | ||
41 | protected File markerFilesDirectory; | |
42 | ||
43 | public DefaultFileMarkerHandler( File theMarkerFilesDirectory ) | |
44 | 153 | { |
45 | 153 | this.markerFilesDirectory = theMarkerFilesDirectory; |
46 | 153 | } |
47 | ||
48 | public DefaultFileMarkerHandler( Artifact theArtifact, File theMarkerFilesDirectory ) | |
49 | 338 | { |
50 | 338 | this.artifact = theArtifact; |
51 | 338 | this.markerFilesDirectory = theMarkerFilesDirectory; |
52 | 338 | } |
53 | ||
54 | /** | |
55 | * Returns properly formatted File | |
56 | * | |
57 | * @return File object for marker. The file is not guaranteed to exist. | |
58 | */ | |
59 | protected File getMarkerFile() | |
60 | { | |
61 | 621 | return new File( this.markerFilesDirectory, this.artifact.getId().replace( ':', '-' ) + ".marker" ); |
62 | } | |
63 | ||
64 | /** | |
65 | * Tests whether the file or directory denoted by this abstract pathname | |
66 | * exists. | |
67 | * | |
68 | * @return <code>true</code> if and only if the file or directory denoted | |
69 | * by this abstract pathname exists; <code>false</code> otherwise | |
70 | * | |
71 | * @throws SecurityException | |
72 | * If a security manager exists and its <code>{@link | |
73 | * java.lang.SecurityManager#checkRead(java.lang.String)}</code> | |
74 | * method denies read access to the file or directory | |
75 | */ | |
76 | public boolean isMarkerSet() | |
77 | throws MojoExecutionException | |
78 | { | |
79 | 432 | File marker = getMarkerFile(); |
80 | 432 | return marker.exists(); |
81 | } | |
82 | ||
83 | public boolean isMarkerOlder( Artifact artifact1 ) | |
84 | throws MojoExecutionException | |
85 | { | |
86 | 10 | File marker = getMarkerFile(); |
87 | 10 | if ( marker.exists() ) |
88 | { | |
89 | 8 | return artifact1.getFile().lastModified() > marker.lastModified(); |
90 | } | |
91 | else | |
92 | { | |
93 | // if the marker doesn't exist, we want to copy so assume it is | |
94 | // infinately older | |
95 | 2 | return true; |
96 | } | |
97 | } | |
98 | ||
99 | public void setMarker() | |
100 | throws MojoExecutionException | |
101 | { | |
102 | 203 | File marker = getMarkerFile(); |
103 | // create marker file | |
104 | try | |
105 | { | |
106 | 203 | marker.getParentFile().mkdirs(); |
107 | } | |
108 | 2 | catch ( NullPointerException e ) |
109 | { | |
110 | // parent is null, ignore it. | |
111 | 201 | } |
112 | try | |
113 | { | |
114 | 203 | marker.createNewFile(); |
115 | } | |
116 | 2 | catch ( IOException e ) |
117 | { | |
118 | 2 | throw new MojoExecutionException( "Unable to create Marker: " + marker.getAbsolutePath(), e ); |
119 | 201 | } |
120 | ||
121 | 201 | } |
122 | ||
123 | /** | |
124 | * Deletes the file or directory denoted by this abstract pathname. If this | |
125 | * pathname denotes a directory, then the directory must be empty in order | |
126 | * to be deleted. | |
127 | * | |
128 | * @return <code>true</code> if and only if the file or directory is | |
129 | * successfully deleted; <code>false</code> otherwise | |
130 | * | |
131 | * @throws SecurityException | |
132 | * If a security manager exists and its <code>{@link | |
133 | * java.lang.SecurityManager#checkDelete}</code> | |
134 | * method denies delete access to the file | |
135 | */ | |
136 | public boolean clearMarker() | |
137 | throws MojoExecutionException | |
138 | { | |
139 | 18 | File marker = getMarkerFile(); |
140 | 18 | return marker.delete(); |
141 | } | |
142 | ||
143 | /** | |
144 | * @return Returns the artifact. | |
145 | */ | |
146 | public Artifact getArtifact() | |
147 | { | |
148 | 4 | return this.artifact; |
149 | } | |
150 | ||
151 | /** | |
152 | * @param artifact | |
153 | * The artifact to set. | |
154 | */ | |
155 | public void setArtifact( Artifact artifact ) | |
156 | { | |
157 | 335 | this.artifact = artifact; |
158 | 335 | } |
159 | ||
160 | /** | |
161 | * @return Returns the markerFilesDirectory. | |
162 | */ | |
163 | public File getMarkerFilesDirectory() | |
164 | { | |
165 | 4 | return this.markerFilesDirectory; |
166 | } | |
167 | ||
168 | /** | |
169 | * @param markerFilesDirectory | |
170 | * The markerFilesDirectory to set. | |
171 | */ | |
172 | public void setMarkerFilesDirectory( File markerFilesDirectory ) | |
173 | { | |
174 | 2 | this.markerFilesDirectory = markerFilesDirectory; |
175 | 2 | } |
176 | } |