View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.internal.aether;
20  
21  import org.apache.maven.api.PathType;
22  import org.apache.maven.api.Type;
23  import org.apache.maven.api.services.TypeRegistry;
24  import org.apache.maven.repository.internal.type.DefaultType;
25  import org.eclipse.aether.artifact.ArtifactType;
26  import org.eclipse.aether.artifact.ArtifactTypeRegistry;
27  
28  import static java.util.Objects.requireNonNull;
29  
30  class TypeRegistryAdapter implements ArtifactTypeRegistry {
31      private final TypeRegistry typeRegistry;
32  
33      TypeRegistryAdapter(TypeRegistry typeRegistry) {
34          this.typeRegistry = requireNonNull(typeRegistry, "typeRegistry");
35      }
36  
37      @Override
38      public ArtifactType get(String typeId) {
39          Type type = typeRegistry.require(typeId);
40          if (type instanceof ArtifactType) {
41              return (ArtifactType) type;
42          }
43          if (type != null) {
44              return new DefaultType(
45                      type.id(),
46                      type.getLanguage(),
47                      type.getExtension(),
48                      type.getClassifier(),
49                      type.isIncludesDependencies(),
50                      type.getPathTypes().toArray(new PathType[0]));
51          }
52          return null;
53      }
54  }