+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2010 Association for Decentralized Information Management
- * in Industry THTH ry.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * VTT Technical Research Centre of Finland - initial API and implementation
- *******************************************************************************/
-package org.simantics.db.procore.server.environment.windows;
-
-/**
- * The possible return values of Win32 API call MsiQueryProductState enumerated.
- *
- * @author Tuukka Lehtonen
- */
-public enum ProductState {
-
- /**
- * An invalid parameter was passed to the function.
- */
- INVALIDARG(-2),
-
- /**
- * The product is not advertised or installed.
- */
- UNKNOWN(-1),
-
- /**
- * Indicates invocation of {@link Msi#MsiQueryProductState(String)} failed.
- */
- FAILED(0),
-
- /**
- * The product is advertised but not installed.
- */
- ADVERTISED(1),
-
- /**
- * The product is installed for a different user.
- */
- ABSENT(2),
-
- /**
- * The product is installed for a different user.
- */
- DEFAULT(5);
-
- int code;
-
- ProductState(int code) {
- this.code = code;
- }
-
- public static ProductState of(int code) {
- switch (code) {
- case -2: return INVALIDARG;
- case -1: return UNKNOWN;
- case 0: return FAILED;
- case 1: return ADVERTISED;
- case 2: return ABSENT;
- case 5: return DEFAULT;
- default: throw new IllegalArgumentException("unrecognized product install state return code: " + code);
- }
- }
-
- @Override
- public String toString() {
- return name() + "(" + code + ")";
- }
-
-}