Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Apache Ant Source Code Files
Apache Ant Source Code Files are inside the Apache Ant source package file like apache-ant-1.10.10-src.zip. Unzip the source package file and go to the "src/main" sub-directory, you will see source code files.
Here is the list of Java source code files of the Apache Ant 1.10.10 in \Users\fyicenter\apache-ant-1.10.10\src\main:
✍: FYIcenter.com
⏎ org/apache/tools/ant/types/selectors/TokenizedPath.java
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.tools.ant.types.selectors; import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.util.FileUtils; /** * Container for a path that has been split into its components. * @since 1.8.0 */ public class TokenizedPath { /** * Instance that holds no tokens at all. */ public static final TokenizedPath EMPTY_PATH = new TokenizedPath("", new String[0]); /** Helper. */ private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); /** iterations for case-sensitive scanning. */ private static final boolean[] CS_SCAN_ONLY = new boolean[] {true}; /** iterations for non-case-sensitive scanning. */ private static final boolean[] CS_THEN_NON_CS = new boolean[] {true, false}; private final String path; private final String[] tokenizedPath; /** * Initialize the TokenizedPath by parsing it. * @param path The path to tokenize. Must not be * <code>null</code>. */ public TokenizedPath(String path) { this(path, SelectorUtils.tokenizePathAsArray(path)); } /** * Creates a new path as a child of another path. * * @param parent the parent path * @param child the child, must not contain the file separator */ public TokenizedPath(TokenizedPath parent, String child) { if (!parent.path.isEmpty() && parent.path.charAt(parent.path.length() - 1) != File.separatorChar) { path = parent.path + File.separatorChar + child; } else { path = parent.path + child; } tokenizedPath = new String[parent.tokenizedPath.length + 1]; System.arraycopy(parent.tokenizedPath, 0, tokenizedPath, 0, parent.tokenizedPath.length); tokenizedPath[parent.tokenizedPath.length] = child; } /* package */ TokenizedPath(String path, String[] tokens) { this.path = path; this.tokenizedPath = tokens; } /** * @return The original path String */ @Override public String toString() { return path; } /** * The depth (or length) of a path. * @return int */ public int depth() { return tokenizedPath.length; } /* package */ String[] getTokens() { return tokenizedPath; } /** * From <code>base</code> traverse the filesystem in order to find * a file that matches the given name. * * @param base base File (dir). * @param cs whether to scan case-sensitively. * @return File object that points to the file in question or null. */ public File findFile(File base, final boolean cs) { String[] tokens = tokenizedPath; if (FileUtils.isAbsolutePath(path)) { if (base == null) { String[] s = FILE_UTILS.dissect(path); base = new File(s[0]); tokens = SelectorUtils.tokenizePathAsArray(s[1]); } else { File f = FILE_UTILS.normalize(path); String s = FILE_UTILS.removeLeadingPath(base, f); if (s.equals(f.getAbsolutePath())) { //removing base from path yields no change; path //not child of base return null; } tokens = SelectorUtils.tokenizePathAsArray(s); } } return findFile(base, tokens, cs); } /** * Do we have to traverse a symlink when trying to reach path from * basedir? * @param base base File (dir). * @return boolean */ public boolean isSymlink(File base) { for (String token : tokenizedPath) { final Path pathToTraverse; if (base == null) { pathToTraverse = Paths.get(token); } else { pathToTraverse = Paths.get(base.toPath().toString(), token); } if (Files.isSymbolicLink(pathToTraverse)) { return true; } base = new File(base, token); } return false; } /** * true if the original paths are equal. * @return boolean */ @Override public boolean equals(Object o) { return o instanceof TokenizedPath && path.equals(((TokenizedPath) o).path); } @Override public int hashCode() { return path.hashCode(); } /** * From <code>base</code> traverse the filesystem in order to find * a file that matches the given stack of names. * * @param base base File (dir) - must not be null. * @param pathElements array of path elements (dirs...file). * @param cs whether to scan case-sensitively. * @return File object that points to the file in question or null. */ private static File findFile(File base, final String[] pathElements, final boolean cs) { for (String pathElement : pathElements) { if (!base.isDirectory()) { return null; } String[] files = base.list(); if (files == null) { throw new BuildException("IO error scanning directory %s", base.getAbsolutePath()); } boolean found = false; boolean[] matchCase = cs ? CS_SCAN_ONLY : CS_THEN_NON_CS; for (int i = 0; !found && i < matchCase.length; i++) { for (int j = 0; !found && j < files.length; j++) { if (matchCase[i] ? files[j].equals(pathElement) : files[j].equalsIgnoreCase(pathElement)) { base = new File(base, files[j]); found = true; } } } if (!found) { return null; } } return pathElements.length == 0 && !base.isDirectory() ? null : base; } /** * Creates a TokenizedPattern from the same tokens that make up * this path. * * @return TokenizedPattern */ public TokenizedPattern toPattern() { return new TokenizedPattern(path, tokenizedPath); } }
⏎ org/apache/tools/ant/types/selectors/TokenizedPath.java
Or download all of them as a single archive file:
File name: apache-ant-1.10.10-fyi.zip File size: 2392938 bytes Release date: 2021-04-17 Download
⇐ Download Apache Ant Source Package
2021-07-10, 111038👍, 0💬
Popular Posts:
How to download and install ojdbc5.jar for Oracle 11g R1? ojdbc5.jar for Oracle 11g R1 is a Java 5 J...
ANTLR is a powerful parser generator for multiple programming languages including Java. ANTLR contai...
What JAR files are required to run sax\Writer.java provided in the Apache Xerces package? 1 JAR file...
JDK 6 tools.jar is the JAR file for JDK 6 tools. It contains Java classes to support different JDK t...
commons-net-1.4.1.jar is the JAR file for Apache Commons Net 1.4.1, which implements the client side...