All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.calcite.test.schemata.hr.HierarchySchema Maven / Gradle / Ivy

The newest version!
/*
 * 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.calcite.test.schemata.hr;

import java.util.Arrays;
import java.util.Objects;

/**
 * A Schema representing a hierarchy of employees.
 *
 * 

The Schema is meant to be used with * {@link org.apache.calcite.adapter.java.ReflectiveSchema} thus all * fields, and methods, should be public. */ public class HierarchySchema { @Override public String toString() { return "HierarchySchema"; } public final Employee[] emps = { new Employee(1, 10, "Emp1", 10000, 1000), new Employee(2, 10, "Emp2", 8000, 500), new Employee(3, 10, "Emp3", 7000, null), new Employee(4, 10, "Emp4", 8000, 500), new Employee(5, 10, "Emp5", 7000, null), }; public final Department[] depts = { new Department( 10, "Dept", Arrays.asList(emps[0], emps[1], emps[2], emps[3], emps[4]), new Location(-122, 38)), }; // Emp1 // / \ // Emp2 Emp4 // / \ // Emp3 Emp5 public final Hierarchy[] hierarchies = { new Hierarchy(1, 2), new Hierarchy(2, 3), new Hierarchy(2, 5), new Hierarchy(1, 4), }; /** Hierarchy representing manager - subordinate. */ public static class Hierarchy { public final int managerid; public final int subordinateid; public Hierarchy(int managerid, int subordinateid) { this.managerid = managerid; this.subordinateid = subordinateid; } @Override public String toString() { return "Hierarchy [managerid: " + managerid + ", subordinateid: " + subordinateid + "]"; } @Override public boolean equals(Object obj) { return obj == this || obj instanceof Hierarchy && managerid == ((Hierarchy) obj).managerid && subordinateid == ((Hierarchy) obj).subordinateid; } @Override public int hashCode() { return Objects.hash(managerid, subordinateid); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy