001 package com.croftsoft.core.util.id; 002 003 import com.croftsoft.core.lang.NullArgumentException; 004 005 /********************************************************************* 006 * An Id implementation that uses a Long object as its value. 007 * 008 * @version 009 * $Id: LongId.java,v 1.3 2008/09/20 05:11:34 croft Exp $ 010 * @since 011 * 2000-04-20 012 * @author 013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 014 *********************************************************************/ 015 016 public class LongId 017 implements Id 018 ////////////////////////////////////////////////////////////////////// 019 ////////////////////////////////////////////////////////////////////// 020 { 021 022 private static final long serialVersionUID = 0L; 023 024 // 025 026 private final Long l; 027 028 ////////////////////////////////////////////////////////////////////// 029 // Constructor methods 030 ////////////////////////////////////////////////////////////////////// 031 032 /********************************************************************* 033 * Main constructor. 034 * 035 * @throws NullArgumentException 036 * 037 * If argument is null. 038 *********************************************************************/ 039 public LongId ( Long l ) 040 ////////////////////////////////////////////////////////////////////// 041 { 042 NullArgumentException.check ( this.l = l ); 043 } 044 045 public LongId ( long l ) 046 ////////////////////////////////////////////////////////////////////// 047 { 048 this ( new Long ( l ) ); 049 } 050 051 public LongId ( String s ) 052 ////////////////////////////////////////////////////////////////////// 053 { 054 this ( new Long ( s ) ); 055 } 056 057 ////////////////////////////////////////////////////////////////////// 058 // accessor method 059 ////////////////////////////////////////////////////////////////////// 060 061 public Long getL ( ) { return l; } 062 063 ////////////////////////////////////////////////////////////////////// 064 // Id interface methods 065 ////////////////////////////////////////////////////////////////////// 066 067 @Override 068 public Object clone ( ) 069 ////////////////////////////////////////////////////////////////////// 070 { 071 try 072 { 073 return super.clone ( ); 074 } 075 catch ( CloneNotSupportedException ex ) 076 { 077 // This will never happen. 078 079 throw new RuntimeException ( ); 080 } 081 } 082 083 @Override 084 public boolean equals ( Object other ) 085 ////////////////////////////////////////////////////////////////////// 086 { 087 if ( ( other == null ) 088 || !getClass ( ).equals ( other.getClass ( ) ) ) 089 090 { 091 return false; 092 } 093 094 return l.equals ( ( ( LongId ) other ).l ); 095 } 096 097 @Override 098 public int hashCode ( ) 099 ////////////////////////////////////////////////////////////////////// 100 { 101 return l.hashCode ( ); 102 } 103 104 @Override 105 public String toString ( ) 106 ////////////////////////////////////////////////////////////////////// 107 { 108 return l.toString ( ); 109 } 110 111 ////////////////////////////////////////////////////////////////////// 112 ////////////////////////////////////////////////////////////////////// 113 }