View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  package org.opencastproject.assetmanager.impl;
22  
23  import org.opencastproject.assetmanager.api.Availability;
24  import org.opencastproject.assetmanager.api.PropertyName;
25  import org.opencastproject.assetmanager.api.Value.ValueType;
26  import org.opencastproject.assetmanager.api.query.ADeleteQuery;
27  import org.opencastproject.assetmanager.api.query.AQueryBuilder;
28  import org.opencastproject.assetmanager.api.query.ASelectQuery;
29  import org.opencastproject.assetmanager.api.query.Field;
30  import org.opencastproject.assetmanager.api.query.Predicate;
31  import org.opencastproject.assetmanager.api.query.PropertyField;
32  import org.opencastproject.assetmanager.api.query.Target;
33  import org.opencastproject.assetmanager.api.query.VersionField;
34  
35  import java.util.Date;
36  
37  /**
38   * A wrapper for query builder. All method calls are delegated to the wrapped builder by default.
39   * Override to provide extra functionality.
40   */
41  public class AQueryBuilderDecorator implements AQueryBuilder {
42    private final AQueryBuilder delegate;
43  
44    public AQueryBuilderDecorator(AQueryBuilder delegate) {
45      this.delegate = delegate;
46    }
47  
48    @Override public ASelectQuery select(Target... target) {
49      return delegate.select(target);
50    }
51  
52    @Override public ADeleteQuery delete(String owner, Target target) {
53      return delegate.delete(owner, target);
54    }
55  
56    @Override
57    public Predicate mediaPackageIds(String... mpIds) {
58      return this.delegate.mediaPackageIds(mpIds);
59    }
60  
61    @Override public Predicate mediaPackageId(String mpId) {
62      return delegate.mediaPackageId(mpId);
63    }
64  
65    @Override public Field<String> mediapackageId() {
66      return delegate.mediapackageId();
67    }
68  
69    @Override public Field<String> seriesId() {
70      return delegate.seriesId();
71    }
72  
73    @Override public Predicate organizationId(String orgId) {
74      return delegate.organizationId(orgId);
75    }
76  
77    @Override public Field<String> organizationId() {
78      return delegate.organizationId();
79    }
80  
81    @Override public Field<String> owner() {
82      return delegate.owner();
83    }
84  
85    @Override public Predicate availability(Availability availability) {
86      return delegate.availability(availability);
87    }
88  
89    @Override public Predicate storage(String storageId) {
90      return delegate.storage(storageId);
91    }
92  
93    @Override public Predicate hasPropertiesOf(String namespace) {
94      return delegate.hasPropertiesOf(namespace);
95    }
96  
97    @Override public Predicate hasProperties() {
98      return delegate.hasProperties();
99    }
100 
101   @Override public Field<Date> archived() {
102     return delegate.archived();
103   }
104 
105   @Override public VersionField version() {
106     return delegate.version();
107   }
108 
109   @Override public <A> PropertyField<A> property(ValueType<A> ev, String namespace, String name) {
110     return delegate.property(ev, namespace, name);
111   }
112 
113   @Override public <A> PropertyField<A> property(ValueType<A> ev, PropertyName fqn) {
114     return delegate.property(ev, fqn);
115   }
116 
117   @Override public Target snapshot() {
118     return delegate.snapshot();
119   }
120 
121   @Override public Target propertiesOf(String... namespace) {
122     return delegate.propertiesOf(namespace);
123   }
124 
125   @Override public Target properties(
126           PropertyName... fqn) {
127     return delegate.properties(fqn);
128   }
129 
130   @Override public Target nothing() {
131     return delegate.nothing();
132   }
133 
134   @Override public Predicate always() {
135     return delegate.always();
136   }
137 }