com.mycila.ujd.impl.JavaClassRegistry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mycila-ujd Show documentation
Show all versions of mycila-ujd Show documentation
Mycila Unecessary Jar Detector
The newest version!
/**
* Copyright (C) 2010 Mathieu Carbou
*
* 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.mycila.ujd.impl;
import com.mycila.ujd.api.JavaClass;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Mathieu Carbou ([email protected])
*/
final class JavaClassRegistry {
private final ConcurrentHashMap, JavaClassImpl>> classes = new ConcurrentHashMap, JavaClassImpl>>();
private final DefaultJVM jvm;
JavaClassRegistry(DefaultJVM jvm) {
this.jvm = jvm;
}
JavaClass add(Class aClass) {
JavaClassImpl> jc = classes.get(aClass);
if (jc == null)
classes.put(aClass, jc = create(aClass));
return (JavaClass) jc;
}
Iterable extends JavaClass>> getJavaClasses() {
return classes.values();
}
private JavaClassImpl create(Class aClass) {
return ClassUtils.isGeneratedClass(aClass) ?
new JavaClassImpl(jvm, aClass) :
new ContainedJavaClassImpl(jvm, aClass);
}
public void clear() {
classes.clear();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy