Plattformens plugin-modul for kjøretid definerer infrastruktur for definering og fastsettelse av innholdstyper for datastrømmer. (Du finner en oversikt over innholdsrammeverket i Innholdstyper.) En viktig del av innholdstypesystemet er å kunne angi ulike kodinger (tegnsett) for ulike innholdstyper. Programmeringsgrensesnittet for ressursene gjør det videre mulig å opprette standard tegnsett for prosjekter, mapper og filer. Disse standard tegnsettene konsulteres hvis innholdet i selve filen ikke definerer en bestemt koding i datastrømmen.
Som vi har sett under Innholdstyper kan det opprettes standard filkodinger for innholdstyper. Mer detaljert kontroll oppnås gjennom programmeringsgrensesnittet for ressurser.
IContainer definerer protokoll for definering av standard tegnsett for et bestemt prosjekt eller en bestemt mappe. Dette gir plugin-modulene (og dermed brukeren) større frihet til å fastsette et egnet tegnsett for et sett med filer i de tilfeller der standard tegnsett fra innholdstypen ikke er egnet.
IFile definerer programmeringsgrensesnitt for angivelse av standard tegnsett for en bestemt fil. Hvis det ikke er angitt koding i filinnholdet, brukes dette tegnsettet. Filens standard tegnsett har høyere prioritet enn det standard tegnsettet som er definert i filens mappe, prosjekt eller innholdstype.
Begge disse funksjonene er tilgjengelig for sluttbrukeren på egenskapssiden for en ressurs.
IFile definerer programmeringsgrensesnittet for spørring etter tegnsettet i en fil. Et boolsk flagg angir om det bare skal returneres et tegnsett som er eksplisitt definert for filen, eller om det skal returneres et implisitt tegnsett. Eksempel:
String charset = myFile.getCharset(false);
returnerer null hvis det ikke eksplisitt er definert et tegnsett i myFile.
String charset = myFile.getCharset(true);
sjekker derimot først om det er angitt et tegnsett eksplisitt for filen. Hvis det ikke blir funnet noe, letes det etter en beskrivelse av tegnsettet i filinnholdet. Hvis det ikke blir funnet noe, letes det etter et standard tegnsett i mappene og prosjektene for filene. Hvis det fortsatt ikke blir funnet noe, kontrolleres standard tegnsettet som er definert for selve innholdstypen. Hvis det ikke er angitt noe annet standard tegnsett, returneres nå standard tegnsettet for plattformen. Bekvemmelighetsmetoden getCharset() er identisk med getCharset(true).
For filer i arbeidsområdet oppgir IFile programmeringsgrensesnitt for henting av filinnholdsbeskrivelsen:
IFile file = ...; IContentDescription description = file.getDescription();
Dette programmeringsgrensesnittet skal brukes selv om det bare er interessant å fastsette innholdstypen. Innholdstypen kan uten problemer hentes fra innholdsbeskrivelsen. Det er mulig å finne innholdstypen eller beskrive filer i arbeidsområdet ved å hente innhold og navn og bruke programmeringsgrensesnittet som er beskrevet i Bruke innholdstyper, men dette anbefales ikke. Når innholdstypen fastsettes ved hjelp av IFile.getContentDescription(), tas det hensyn til prosjekttyper og prosjektspesifikke innstillinger. Hvis du går direkte til innholdstypestyreren, ignoreres dette. Et enda viktigere argument er at lesing av innholdet i filer fra disk er svært kostbart. Plugin-modulen for ressurser vedlikeholder en hurtigbuffer for innholdsbeskrivelse for filer i arbeidsområdet. Dette reduserer kostnadene ved innholdsbeskrivelse til et akseptabelt nivå.