Download this file
eclipseProject.emf
154 lines (137 with data), 3.4 kB
@namespace(
uri="http://com.tecnalia.ossmeter.model/eclipse_project", prefix="eclipse_project")
package eclipseproject;
/**
Main Container.All the topLevel projects are stored here.
*/
class EclipseWorld{
//val EclipseTopLevelProject[*] topLevelProjects;
val EclipseProject[*] projects;
/**Get project, at any depth level*/
op EclipseProject getProjectAtAnyDepth(String name);
}
/*
Read http://www.eclipse.org/projects/dev_process/development_process_2011.php
*/
/*
Set of eclipse projects, under a same objective, team, or group or interest
This kind of project is intended to contains eclipse projects
*/
/*
class EclipseTopLevelProject{
attr String[1] name;
attr String[1] url;
val EclipseProject[*] projects;
}
*/
/**
Collection of different identifiers related to an eclipse project
*/
class EclipseProject{
//attr String[1] parentProject;//string instead of ref to prevent double linkage
attr boolean[1] isParentProject=false;
id attr String[1] name;
attr String[1] url;
attr EnumProjectLiveCycle[1] status;
val CodeRepository[*] repositories;
attr EnumLiveliness[1] liveliness;
/*val since two projects can be managed by the same person-> 2 ProjectMembers, 1 User(by reference)*/
val ProjectMember[+] members;
attr int[1] organizations;
attr EnumPlatformVersion[+] availablePlatformVersions;
val EclipseProject[*] projects;
attr EnumLicense license;
val CommunityResource[*] CommunityResources;
/*
4-PROJECT STRUCTURE & ORGANIZATION
comitters
code and releases
ip records
comunity awarenes
scope
leaders
commiters
councils
incubator projects
*/
/**Get project, at any depth level*/
op EclipseProject getProjectAtAnyDepth(String name);
}
/**
Member related to a project.
The meaning of this item is different than a real user,
since a user is unique, but the user will have one ProjectMember object for each project is involved
*/
class ProjectMember{
ref User[1] user;
attr EnumMemberRole[1] role;
attr String[1] url;//Example:http:\/\/projects.eclipse.org/content/kenn-hussey-committer-emf
}
/**
A real person
*/
class User{
id attr String[1] name;
attr String[1] url;//Example:http:\/\/projects.eclipse.org/users/khussey
}
class CodeRepository{
attr EnumRepository[1] type;
attr String[1] url;
}
/*Mailing list, forum, etc*/
class CommunityResource{
attr String[1] type;
attr String[1] name;
attr String[1] url;
attr Object data;/*generic container for each community type*/
}
/*Available community list*/
enum EnumCommunityType{
MAILING_LIST;
FORUM;
WEBSITE;
WIKI;
BUG_TRACKER;
}
/*Control version system attached to the project*/
enum EnumRepository{
SUBVERSION;
GIT;
CVS;
}
/**
*Status of maturity in the project
*http://www.eclipse.org/projects/dev_process/development_process_2011.php
*/
enum EnumProjectLiveCycle{
PRE_PROPOSAL;
PROPOSAL;
INCUBATION;
MATURE;
TOP_LEVEL;
ARCHIVED;
}
/*Status of continuous development in the project*/
enum EnumLiveliness{
INACTIVE;
ACTIVE;
}
/*Eclipse version names*/
enum EnumPlatformVersion{
GANYMEDE;
GALILEO;
HELIOS;
INDIGO;
JUNO;
KEPLER;
LUNA;
}
/*Types of avaliable license for each eclipse project*/
enum EnumLicense{
EPL_1_0;
}
enum EnumMemberRole{
CONTRIBUTOR;
COMMITTER;
LEADER;
}