
Where a comparator is obviously comparing one or more derived keys, either manually or with ComparisonChain, replace with the equivalent comparing() call. Not all comparators are simple to translate in this way, such as ChunkManager#getDiffChunkComparator. Even though these cases could be improved, or, quite likely, they contain bugs, that work is left for a future change. In the common case of creating a comparator to pass to Collections#sort to sort a newly-created ArrayList, replace these with equivalent stream expressions. Again, not all cases of Collections#sort are simple enough to tackle here. In some of these cases, we could probably further alter the types to more aggressively use immutable types. Generally speaking, that would introduce ripple effects which would make this change less focused and difficult to review. Don't do that, in order to limit the cleanup here. Change-Id: I098d3820927367ee98c96698481cb0edcceb3d64
74 lines
2.1 KiB
Java
74 lines
2.1 KiB
Java
// Copyright (C) 2014 The Android Open Source Project
|
|
//
|
|
// Licensed 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 com.google.gerrit.server.plugins;
|
|
|
|
import static java.util.Comparator.comparing;
|
|
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
|
|
/**
|
|
* Plugin static resource entry
|
|
*
|
|
* <p>Bean representing a static resource inside a plugin. All static resources are available at
|
|
* {@code <plugin web url>/static} and served by the HttpPluginServlet.
|
|
*/
|
|
public class PluginEntry {
|
|
public static final String ATTR_CHARACTER_ENCODING = "Character-Encoding";
|
|
public static final String ATTR_CONTENT_TYPE = "Content-Type";
|
|
public static final Comparator<PluginEntry> COMPARATOR_BY_NAME = comparing(PluginEntry::getName);
|
|
|
|
private static final Map<Object, String> EMPTY_ATTRS = Collections.emptyMap();
|
|
private static final Optional<Long> NO_SIZE = Optional.empty();
|
|
|
|
private final String name;
|
|
private final long time;
|
|
private final Optional<Long> size;
|
|
private final Map<Object, String> attrs;
|
|
|
|
public PluginEntry(String name, long time, Optional<Long> size, Map<Object, String> attrs) {
|
|
this.name = name;
|
|
this.time = time;
|
|
this.size = size;
|
|
this.attrs = attrs;
|
|
}
|
|
|
|
public PluginEntry(String name, long time, Optional<Long> size) {
|
|
this(name, time, size, EMPTY_ATTRS);
|
|
}
|
|
|
|
public PluginEntry(String name, long time) {
|
|
this(name, time, NO_SIZE, EMPTY_ATTRS);
|
|
}
|
|
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
public long getTime() {
|
|
return time;
|
|
}
|
|
|
|
public Optional<Long> getSize() {
|
|
return size;
|
|
}
|
|
|
|
public Map<Object, String> getAttrs() {
|
|
return attrs;
|
|
}
|
|
}
|