/* * Copyright 2008 Federal Chancellery Austria and * Graz University of Technology * * 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. */ package at.gv.egiz.idlink.ans1; import iaik.asn1.*; /** * This class represents the ASN.1 version of the PhysicalPersonData * of an compressed identity link. * *
PhysicalPersonData ::= SEQUENCE { 
    baseId UTF8String, 
    givenName UTF8String, 
    familyName UTF8String, 
    dateOfBirth UTF8String
}
* * @author mivkovic@egiz.gv.at, mcentner@eigz.gv.at */ public class PhysicalPersonData implements ASN1Type { /** * baseId */ private String baseId; // UTF8String /** * givenName */ private String givenName; // UTF8String /** * familyName */ private String familyName; // UTF8String /** * dataOfBirth */ private String dateOfBirth; // UTF8String /** * Creates a new PhysicalPersonData with the * given baseId, givenName, familyName * and dataOfBirth. * * @param baseId * @param givenName * @param familyName * @param dateOfBirth */ public PhysicalPersonData(String baseId, String givenName, String familyName, String dateOfBirth) { this.baseId = baseId; this.givenName = givenName; this.familyName = familyName; this.dateOfBirth = dateOfBirth; } /** * Creates a new PhysicalPersonData from its ASN.1 representation. * * @param obj * * @throws CodingException */ public PhysicalPersonData(ASN1Object obj) throws CodingException { decode(obj); } @Override public void decode(ASN1Object obj) throws CodingException { try { baseId = (String) ((ASN1Object) obj.getComponentAt(0)).getValue(); givenName = (String) ((ASN1Object) obj.getComponentAt(1)).getValue(); familyName = (String) ((ASN1Object) obj.getComponentAt(2)).getValue(); dateOfBirth = (String) ((ASN1Object) obj.getComponentAt(3)).getValue(); } catch (Exception ex) { throw new CodingException(ex.toString()); } } @Override public ASN1Object toASN1Object() { SEQUENCE ppd = new SEQUENCE(); ppd.addComponent(new UTF8String(baseId)); ppd.addComponent(new UTF8String(givenName)); ppd.addComponent(new UTF8String(familyName)); ppd.addComponent(new UTF8String(dateOfBirth)); return ppd; } /** * Returns the DER encoding of this PhysicalPersonData. * * @return the DER encoding of this PhysicalPersonData */ public byte[] toByteArray() { return DerCoder.encode(toASN1Object()); } /** * @return the baseId */ public String getBaseId() { return baseId; } /** * @return the givenName */ public String getGivenName() { return givenName; } /** * @return the familyName */ public String getFamilyName() { return familyName; } /** * @return the dateOfBirth */ public String getDateOfBirth() { return dateOfBirth; } }