@@ -0,0 +1,2067 @@
+/*%0A * Copyright 2015 Michael Rozumyanskiy%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage io.michaelrocks.lightsaber.processor.descriptors;%0A%0Aimport org.objectweb.asm.Type;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.Collection;%0Aimport java.util.Collections;%0Aimport java.util.List;%0A%0Apublic class ClassDescriptor %7B%0A    private final Type classType;%0A    private final Type superType;%0A    private final Collection%3CType%3E interfaceTypes;%0A%0A    public ClassDescriptor(final String name, final String superName, final String%5B%5D interfaces) %7B%0A        this(Type.getObjectType(name),%0A                superName == null ? null : Type.getObjectType(superName),%0A                getInterfacesTypes(interfaces));%0A    %7D%0A%0A    public ClassDescriptor(final Type classType, final Type superType, final Collection%3CType%3E interfaceTypes) %7B%0A        this.classType = classType;%0A        this.superType = superType;%0A        this.interfaceTypes = Collections.unmodifiableCollection(new ArrayList%3C%3E(interfaceTypes));%0A    %7D%0A%0A    private static List%3CType%3E getInterfacesTypes(final String%5B%5D interfaces) %7B%0A        final List%3CType%3E interfacesTypes = new ArrayList%3C%3E(interfaces.length);%0A        for (final String interfaceName : interfaces) %7B%0A            interfacesTypes.add(Type.getObjectType(interfaceName));%0A        %7D%0A        return interfacesTypes;%0A    %7D%0A%0A    public Type getClassType() %7B%0A        return classType;%0A    %7D%0A%0A    public Type getSuperType() %7B%0A        return superType;%0A    %7D%0A%0A    public Collection%3CType%3E getInterfaceTypes() %7B%0A        return interfaceTypes;%0A    %7D%0A%7D%0A

Add ClassDescriptor class