001    /*
002     * Licensed under the Apache License, Version 2.0 (the "License");
003     * you may not use this file except in compliance with the License.
004     * You may obtain a copy of the License at
005     *
006     *      http://www.apache.org/licenses/LICENSE-2.0
007     *
008     * Unless required by applicable law or agreed to in writing, software
009     * distributed under the License is distributed on an "AS IS" BASIS,
010     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011     * See the License for the specific language governing permissions and
012     * limitations under the License.
013     */
014    package org.apache.commons.classscan.util;
015    
016    import org.apache.commons.classscan.spi.model.HasResolve;
017    import org.apache.commons.classscan.spi.model.SpiMetaClassLoader;
018    
019    public class ResolveSet<V extends HasResolve> extends ReadOnlySet<V> {
020    
021        public ResolveSet(V[] values) {
022            super(values);
023        }
024    
025        public boolean resolve(SpiMetaClassLoader mcl) {
026            for(V value : values) {
027                    if(!value.resolve(mcl)) {
028                            return false;
029                    }
030            }
031            return true;
032        }
033    
034            private static ResolveSet<HasResolve> EMPTY_SET = new ResolveSet<HasResolve>(new HasResolve[0]);
035        
036            public static <V extends HasResolve> ResolveSet<V> emptyResolveSet() {
037                    @SuppressWarnings("unchecked")
038                    ResolveSet<V> rc = (ResolveSet<V>) EMPTY_SET;
039                    return rc;
040            }
041    }