com.theoryinpractise.clojure.NamespaceInFile Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of clojure-maven-plugin Show documentation
Show all versions of clojure-maven-plugin Show documentation
Maven plugin for compiling clojure source files
/*
* Copyright (c) Antony Blakey 2010.
*
* The use and distribution terms for this software are covered by the Eclipse Public License 1.0
* (http://opensource.org/licenses/eclipse-1.0.php) which can be found in the file epl-v10.html
* at the root of this distribution.
*
* By using this software in any fashion, you are agreeing to be bound by the terms of this license.
*
* You must not remove this notice, or any other, from this software.
*/
package com.theoryinpractise.clojure;
import java.io.File;
public class NamespaceInFile {
private String namespace;
private File sourceFile;
public NamespaceInFile(String namespace, File sourceFile) {
this.namespace = namespace;
this.sourceFile = sourceFile;
}
public String getName() {
return namespace;
}
public String getFilename() {
String base = namespace.replace('.', File.separatorChar).replace('-', '_');
String sourceName = sourceFile.getName();
String suffix = sourceName.substring(sourceName.lastIndexOf("."));
return base + suffix;
}
public File getSourceFile() {
return sourceFile;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
NamespaceInFile that = (NamespaceInFile) o;
if (!namespace.equals(that.namespace)) return false;
if (!sourceFile.equals(that.sourceFile)) return false;
return true;
}
@Override
public int hashCode() {
int result = namespace.hashCode();
result = 31 * result + sourceFile.hashCode();
return result;
}
}