package org.zend.php.zendserver.deployment.ui.contentassist;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.zend.php.zendserver.deployment.ui.Activator;
/**
* PHP Directives from http://www.php.net/manual/en/ini.list.php
*
*/
public class PHPDirectivesProvider implements IProposalProvider {
public static class PHPDirective {
public String name;
public String type;
public String phpVersion;
public PHPDirective(String name, String type, String phpVersion) {
this.name = name;
this.type = type;
this.phpVersion = phpVersion;
}
}
private static List<PHPDirective> directives;
/* (non-Javadoc)
* @see org.zend.php.zendserver.deployment.ui.contentassist.ProposalProvider#init()
*/
public void init() {
if (directives == null) {
directives = new ArrayList<PHPDirective>();
CSVLoader csvloader = new CSVLoader();
InputStream in = getClass().getResourceAsStream("directives.csv"); //$NON-NLS-1$
String[][] csv;
try {
csv = csvloader.load(in);
} catch (IOException e) {
Activator.log(e);
return;
}
for (int i = 0; i < csv.length; i++) {
String since = csv[i].length >= 4 ? csv[i][3] : null;
directives.add(new PHPDirective(csv[i][0], null, since));
}
}
}
/* (non-Javadoc)
* @see org.zend.php.zendserver.deployment.ui.contentassist.ProposalProvider#getNames()
*/
public String[] getNames() {
String[] names = new String[directives.size()];
int i = 0;
for (PHPDirective dir : directives) {
names[i++] = dir.name;
}
return names;
}
}