Package com.linkedin.databus.core.cmclient

Source Code of com.linkedin.databus.core.cmclient.LogicalPartitionRepresentation

package com.linkedin.databus.core.cmclient;
/*
*
* Copyright 2013 LinkedIn Corp. All rights reserved
*
* Licensed 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.
*
*/


import java.text.ParseException;

public class LogicalPartitionRepresentation
{
  private int _partitionNum;
  private int _schemaVersion;
  private String _logicalPartition;
 
  LogicalPartitionRepresentation(String logicalPartition)
  throws ParseException, NumberFormatException
  {
    /**
     * Validate that logicalPartition is represented in the format p10_1 ( partition 10, schema 1)
     */
    if (logicalPartition.charAt(0) != 'p')
    {
      throw new ParseException(logicalPartition, 0);
    }
    String nextStr = logicalPartition.substring(1);
    String[] parts = nextStr.split("_");
   
    if (parts.length != 2)
    {
      throw new ParseException("logical Partition does not have numbers of format p[num1]_[num2]" + logicalPartition, 0);
    }
    int p = Integer.parseInt(parts[0]);
    int s = Integer.parseInt(parts[1]);
   
    _logicalPartition = logicalPartition;
    _partitionNum = p;
    _schemaVersion = s;     
  }
 
  LogicalPartitionRepresentation(int partitionNum, int schemaVersion)
  {
    _partitionNum = partitionNum;
    _schemaVersion = schemaVersion;
    _logicalPartition = "p" + Integer.toString(partitionNum) + "_" + Integer.toString(schemaVersion);
  }
 
  public int getPartitionNum()
  {
    return _partitionNum;
  }
 
  public int getSchemaVersion()
  {
    return _schemaVersion;
  }

  public String getLogicalPartition()
  {
    return _logicalPartition;
  }

  @Override
  public String toString() {
    return "LogicalPartitionRepresentation [_partitionNum=" + _partitionNum
        + ", _schemaVersion=" + _schemaVersion + ", _logicalPartition="
        + _logicalPartition + "]";
  }

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime
        * result
        + ((_logicalPartition == null) ? 0 : _logicalPartition
            .hashCode());
    result = prime * result + _partitionNum;
    result = prime * result + _schemaVersion;
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    LogicalPartitionRepresentation other = (LogicalPartitionRepresentation) obj;
    if (_logicalPartition == null) {
      if (other._logicalPartition != null)
        return false;
    } else if (!_logicalPartition.equals(other._logicalPartition))
      return false;
    if (_partitionNum != other._partitionNum)
      return false;
    if (_schemaVersion != other._schemaVersion)
      return false;
    return true;
  }
}
TOP

Related Classes of com.linkedin.databus.core.cmclient.LogicalPartitionRepresentation

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.