1 package org.apache.archiva.metadata.model.facets;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.metadata.model.MetadataFacet;
23 import org.apache.archiva.metadata.model.MetadataFacetFactory;
24
25
26
27
28 public abstract class AbstractMetadataFacetFactory<T extends MetadataFacet> implements MetadataFacetFactory<T>
29 {
30 private final String facetId;
31 private final Class<T> facetClazz;
32
33 protected AbstractMetadataFacetFactory( Class<T> facetClazz, String facetId) {
34 this.facetId = facetId;
35 this.facetClazz = facetClazz;
36 }
37
38 protected AbstractMetadataFacetFactory(Class<T> facetClazz ) {
39 this.facetClazz = facetClazz;
40 try
41 {
42 this.facetId = (String) this.facetClazz.getField( "FACET_ID" ).get(null);
43 }
44 catch ( Throwable e)
45 {
46 throw new RuntimeException( "There is no FACET_ID static public field on the class " + facetClazz );
47 }
48 }
49
50 @Override
51 public abstract T createMetadataFacet( );
52
53 @Override
54 public abstract T createMetadataFacet( String repositoryId, String name );
55
56 @Override
57 public Class<T> getFacetClass( )
58 {
59 return facetClazz;
60 }
61
62 @Override
63 public String getFacetId( )
64 {
65 return facetId;
66 }
67 }