blob: fe04d66206a73848c4f8c9a1faf75fc4eb9118ba [file] [log] [blame]
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
package org.apache.sling.scripting.bundle.tracker.internal;
import java.util.Objects;
import org.apache.sling.scripting.bundle.tracker.BundledRenderUnitCapability;
import org.jetbrains.annotations.NotNull;
import org.osgi.framework.Bundle;
class TypeProviderImpl implements org.apache.sling.scripting.bundle.tracker.TypeProvider {
private final BundledRenderUnitCapability bundledRenderUnitCapability;
private final Bundle bundle;
TypeProviderImpl(BundledRenderUnitCapability bundledRenderUnitCapability, Bundle bundle) {
this.bundledRenderUnitCapability = bundledRenderUnitCapability;
this.bundle = bundle;
}
@NotNull
@Override
public BundledRenderUnitCapability getBundledRenderUnitCapability() {
return bundledRenderUnitCapability;
}
@NotNull
@Override
public Bundle getBundle() {
return bundle;
}
@Override
public int hashCode() {
return Objects.hash(bundle, bundledRenderUnitCapability);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof TypeProviderImpl) {
TypeProviderImpl other = (TypeProviderImpl) obj;
return Objects.equals(bundle, other.bundle) && Objects.equals(bundledRenderUnitCapability, other.bundledRenderUnitCapability);
}
return false;
}
@Override
public String toString() {
return String.format("TypeProvider{ bundledRenderUnitCapability=%s; bundle=%s }", bundledRenderUnitCapability, bundle.getSymbolicName());
}
}