/*
* Copyright 2011 by Graz University of Technology, Austria
* MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint
* initiative of the Federal Chancellery Austria and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egiz.idlink.asn1;
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;
}
}