blob: 9f2d97b1c60397c9c9dba4b3f39445645ae2ae04 [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.netbeans.modules.db.metadata.model.api;
import java.util.Collection;
import org.netbeans.modules.db.metadata.model.spi.CatalogImplementation;
/**
*
* @author Andrei Badea
*/
public class Catalog extends MetadataElement {
final CatalogImplementation impl;
Catalog(CatalogImplementation impl) {
this.impl = impl;
}
public MetadataElement getParent() {
return null;
}
/**
* Returns the name of this catalog or {@code null} if the name is not known.
*
* @return the name or {@code null}.
*/
public String getName() {
return impl.getName();
}
/**
* Returns {@code true} if this catalog is the default one in this metadata model.
*
* @return {@code true} if this is the default catalog, {@false} otherwise.
*/
public boolean isDefault() {
return impl.isDefault();
}
/**
* Returns the synthetic schema in this catalog. The catalog has
* a synthetic schema if the database doesn't support schemas. Synthetic
* schemas have {@code null} names.
*
* <p>If this method returns {@code null}, then the database supports schemas,
* and they can be retrieved by the {@link #getSchemas} method.</p>
*
* @return the synthetic schema or {@code null}.
* @throws MetadataException if an error occurs while retrieving the metadata.
*/
public Schema getSyntheticSchema() {
return impl.getSyntheticSchema();
}
/**
* Returns the schemas in this catalog.
*
* <p>If the database does not supports schemas, this method always returns
* an empty collection. In that case, a synthetic schema available
* through {@link #getSyntheticSchema} provides access to the tables and
* other metadata elements in the catalog.</p>
*
* @return the schemas.
* @throws MetadataException if an error occurs while retrieving the metadata.
*/
public Collection<Schema> getSchemas() {
return impl.getSchemas();
}
/**
* Returns the schema with the given name.
*
* @param name a schema name.
* @return a schema named {@code name} or {@code null} if there is no such schema.
* @throws MetadataException if an error occurs while retrieving the metadata.
*/
public Schema getSchema(String name) {
return impl.getSchema(name);
}
/**
* Refresh the entire catalog
*
*/
public void refresh() {
impl.refresh();
}
@Override
public String toString() {
return "Catalog[name='" + impl.getName() + "',default=" + isDefault() + "]"; // NOI18N
}
}