/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
package com.mobilesorcery.sdk.profiles;
import java.util.Map;
import com.mobilesorcery.sdk.core.Filter;
import com.mobilesorcery.sdk.core.IPackager;
import com.mobilesorcery.sdk.core.MoSyncTool;
public interface IProfile {
/**
* The property key for horizontal screen size
*/
String SCREEN_SIZE_X = "MA_PROF_CONST_SCREENSIZE_X";
/**
* The property key for vertical screen size
*/
String SCREEN_SIZE_Y = "MA_PROF_CONST_SCREENSIZE_Y";
/**
* Returns the vendor of this handset profile
* @return
*/
IVendor getVendor();
/**
* Returns the name of this handset profile
* @return
*/
String getName();
/**
* Returns a map of properties, a property
* may have any of theses types
* <ul>
* <li>String
* <li>Long
* <li>Boolean
* </ul>
*/
Map<String, Object> getProperties();
/**
* Returns a filtered map of properties
* @param filter
* @return
*/
Map<String, Object> getProperties(Filter<String> filter);
/**
* Returns the platform of this profile,
* eg <code>runtime/java/4</code>
* @return
*/
String getRuntime();
IPackager getPackager();
/**
* Returns a flag indicating whether this device is an emulator
* or not.
* @return
*/
boolean isEmulator();
/**
* Returns the profile type of this profile.
* @see MoSyncTool#LEGACY_PROFILE_TYPE
* @see MoSyncTool#DEFAULT_PROFILE_TYPE
* @return
*/
int getProfileType();
}