<?php
/*******************************************************************************
 * Copyright (c) 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

class info {
  var $name;
  var $origin;
  var $reference;
  var $repository;
  var $location;
  var $tag;
}

class contact {
  var $name;
  var $email;
  var $company;
}

class legal {
  var $ipzilla;
  var $license;
  var $package;
}

class license {
  var $name;
  var $reference;
}

/*
 */
class project {
  // attributes
  var $id;
  var $version;
  var $status;

  // elements
  var $info;
  var $contact;
  var $notes;
  var $legal;
}
?>