Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
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 (322)
Collections:
Other Resources:
commons-io-2.6-sources.jar - Apache Commons IO
commons-io-2.6-sources.jar is the source JAR file for Apache Commons IO 2.6, which
is a library of utilities to assist with developing IO functionality.
JAR File Size and Download Location:
JAR name: commons-io-2.6-sources.jar Target JDK version: 1.7 Dependency: None File size: 280,834 bytes Release date: 15-Oct-2017 Download: Apache Commons IO Website
✍: FYIcenter.com
⏎ org/apache/commons/io/comparator/CompositeFileComparator.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
*
* http://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.commons.io.comparator;
import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
/**
* Compare two files using a set of delegate file {@link Comparator}.
* <p>
* This comparator can be used to sort lists or arrays of files
* by combining a number other comparators.
* <p>
* Example of sorting a list of files by type (i.e. directory or file)
* and then by name:
* <pre>
* CompositeFileComparator comparator =
* new CompositeFileComparator(
* (AbstractFileComparator) DirectoryFileComparator.DIRECTORY_COMPARATOR,
* (AbstractFileComparator) NameFileComparator.NAME_COMPARATOR);
* List<File> list = ...
* comparator.sort(list);
* </pre>
*
* @since 2.0
*/
public class CompositeFileComparator extends AbstractFileComparator implements Serializable {
private static final long serialVersionUID = -2224170307287243428L;
private static final Comparator<?>[] NO_COMPARATORS = {};
private final Comparator<File>[] delegates;
/**
* Create a composite comparator for the set of delegate comparators.
*
* @param delegates The delegate file comparators
*/
@SuppressWarnings("unchecked") // casts 1 & 2 must be OK because types are already correct
public CompositeFileComparator(final Comparator<File>... delegates) {
if (delegates == null) {
this.delegates = (Comparator<File>[]) NO_COMPARATORS;//1
} else {
this.delegates = (Comparator<File>[]) new Comparator<?>[delegates.length];//2
System.arraycopy(delegates, 0, this.delegates, 0, delegates.length);
}
}
/**
* Create a composite comparator for the set of delegate comparators.
*
* @param delegates The delegate file comparators
*/
@SuppressWarnings("unchecked") // casts 1 & 2 must be OK because types are already correct
public CompositeFileComparator(final Iterable<Comparator<File>> delegates) {
if (delegates == null) {
this.delegates = (Comparator<File>[]) NO_COMPARATORS; //1
} else {
final List<Comparator<File>> list = new ArrayList<>();
for (final Comparator<File> comparator : delegates) {
list.add(comparator);
}
this.delegates = (Comparator<File>[]) list.toArray(new Comparator<?>[list.size()]); //2
}
}
/**
* Compare the two files using delegate comparators.
*
* @param file1 The first file to compare
* @param file2 The second file to compare
* @return the first non-zero result returned from
* the delegate comparators or zero.
*/
@Override
public int compare(final File file1, final File file2) {
int result = 0;
for (final Comparator<File> delegate : delegates) {
result = delegate.compare(file1, file2);
if (result != 0) {
break;
}
}
return result;
}
/**
* String representation of this file comparator.
*
* @return String representation of this file comparator
*/
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
builder.append(super.toString());
builder.append('{');
for (int i = 0; i < delegates.length; i++) {
if (i > 0) {
builder.append(',');
}
builder.append(delegates[i]);
}
builder.append('}');
return builder.toString();
}
}
⏎ org/apache/commons/io/comparator/CompositeFileComparator.java
Or download all of them as a single archive file:
File name: commons-io-2.6-sources.jar File size: 280834 bytes Release date: 2017-10-05 Download
⇒ Download and Install commons-io-2.5-bin.zip
2020-12-09, ≈91🔥, 1💬
Popular Posts:
How to display XML element type information with the jaxp\TypeInfoWriter.java provided in the Apache...
JDK 17 jdk.hotspot.agent.jmod is the JMOD file for JDK 17 Hotspot Agent module. JDK 17 Hotspot Agent...
What is the jaxp\SourceValidator.jav aprovided in the Apache Xerces package? I have Apache Xerces 2....
Where Can I see Java Source Code files for Xerces Java 2.11.2? Here are Java Source Code files for X...
How to run "jarsigner" command from JDK tools.jar file? "jarsigner" command allows you to digitally ...