All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.project.impl.ProjectProperties Maven / Gradle / Ivy

The newest version!
package prerna.project.impl;

import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Set;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import jakarta.mail.Session;
import jakarta.mail.Store;
import prerna.util.Constants;
import prerna.util.SocialPropertiesProcessor;

public class ProjectProperties {
	
	private static final Logger classLogger = LogManager.getLogger(ProjectProperties.class);
	private static final String ADMIN_DIRECTORY = ".admin";
	
	private String projectDirString = null;
	private File adminDir = null;
	private File socialProp = null;
	private SocialPropertiesProcessor processor = null;

	public ProjectProperties(String projectDirString, String projectName, String projectId) {
		this.projectDirString = projectDirString;
		this.adminDir = new File(this.projectDirString + "/" + ADMIN_DIRECTORY);
		if(!this.adminDir.exists() || !this.adminDir.isDirectory()) {
			this.adminDir.mkdirs();
		}
		
		String socialPropertiesFileLoc = this.adminDir.getAbsolutePath() + "/" + Constants.SOCIAL_PROPERTIES_FILENAME;
		this.socialProp = new File(socialPropertiesFileLoc);
		if(!this.socialProp.exists() || !this.socialProp.isFile()) {
			try {
				this.socialProp.createNewFile();
			} catch (IOException e) {
				classLogger.error(Constants.STACKTRACE, e);
			}
		}
		this.processor = new SocialPropertiesProcessor(socialPropertiesFileLoc);
	}
	
	public void updateProviderProperties(String provider, Map mods) throws ConfigurationException {
		this.processor.updateProviderProperties(provider, mods);
	}
	
	public void updateAllProperties(Map mods) throws ConfigurationException {
		this.processor.updateAllProperties(mods);
	}
	
	public Map getLoginsAllowed() {
		return this.processor.getLoginsAllowed();
	}
	
	public String getProperty(String key) {
		return this.processor.getProperty(key);
	}
	
	public Object get(Object key) {
		return this.processor.get(key);
	}
	
	public boolean containsKey(String key) {
		return this.processor.containsKey(key);
	}
	
	public Set stringPropertyNames() {
		return this.processor.stringPropertyNames();
	}
	
	public Map getSamlAttributeNames() {
		return this.processor.getSamlAttributeNames();
	}
	
	public boolean emailEnabled() {
		return this.processor.smtpEmailEnabled();
	}
	
	public boolean pop3EmailEnabled() {
		return this.processor.pop3EmailEnabled();
	}
	
	public boolean imapEmailEnabled() {
		return this.processor.imapEmailEnabled();
	}
	
	public String getSmtpSender() {
		return this.processor.getSmtpSender();
	}
	
	@Deprecated
	public Session getEmailSession() {
		classLogger.warn("METHOD DEPRECATED - PLEASE USE getSmtpEmailSession()");
		classLogger.warn("METHOD DEPRECATED - PLEASE USE getSmtpEmailSession()");
		classLogger.warn("METHOD DEPRECATED - PLEASE USE getSmtpEmailSession()");
		classLogger.warn("METHOD DEPRECATED - PLEASE USE getSmtpEmailSession()");
		return getSmtpEmailSession();
	}
	
	public Session getSmtpEmailSession() {
		return this.processor.getSmtpEmailSession();
	}
	
	public Store getPop3EmailStore() {
		return this.processor.getPop3EmailStore();
	}
	
	public Store getImapEmailStore() {
		return this.processor.getImapEmailStore();
	}
	
	public Map getEmailStaticProps() {
		return this.processor.getSmtpEmailStaticProps();
	}
	
	public void reloadProps() {
		this.processor.reloadProps();
	}
	
	public File getSocialProp() {
		return socialProp;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy