* @param fileName file name (if available) where the content resides - can be null
* @return the language type if found or ELanguageTypes.Unknown otherwise
* @throws IOException thrown if analysis has problems with the input stream
*/
private ELanguageTypes findContentTypeInternal(InputStream content, String fileName) throws IOException {
IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
IContentType contentType = contentTypeManager.findContentTypeFor(content, fileName);
ELanguageTypes matchedLanguageType = ELanguageTypes.Unknown;
if (contentType != null) {
matchedLanguageType = ELanguageTypes.getLanguageTypeFromContentType(contentType.getId());
}
if (matchedLanguageType == ELanguageTypes.Unknown) {
IContentType[] contentTypes = contentTypeManager.findContentTypesFor(content, fileName);
if (contentTypes != null) {
for (int i=0; i<contentTypes.length; i++) {
if (ELanguageTypes.getLanguageTypeFromContentType(contentTypes[i].getId()) != ELanguageTypes.Unknown) {
matchedLanguageType = ELanguageTypes.getLanguageTypeFromContentType(contentTypes[i].getId());
break;